Upload
fwdays
View
345
Download
6
Embed Size (px)
Citation preview
1Reflex - offline first for human beings
Offline-first приложение на ReflexДокладчик: Денис Яремов
2Reflex - offline first for human beings
OFFLINE-FIRST
Как я к этому пришел?
3Reflex - offline first for human beings
OFFLINE ОДНИМ СЛОВОМ
БОЛЬ
4Reflex - offline first for human beings
ShareJS
Redux
DiffSync
5Reflex - offline first for human beings
CAP
6Reflex - offline first for human beings
OFFLINE И ФИЗИКА
Все клиенты видят одно (общее)
состояние данных
Каждый клиентможет всегда читать и писать данные
Система работает хорошо, не смотря на физическое деление сети
7Reflex - offline first for human beings
C – A – P
C + A + P < 3
8Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
Eventual consistency = ½ consistency
9Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
Eventual availability?
10Reflex - offline first for human beings
OFFLINE И ФИЗИКА
Все клиенты видят одно (общее)
состояние данных
Каждый клиентможет всегда читать и писать данные
Система работает хорошо, не смотря на физическое деление сети
11Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
Eventual availability = ½ availability
12Reflex - offline first for human beings
C – A – P И ВОСПРИЯТИЕ
½ C + ½ A + P = ?
ReflexМетодология для создания интерактивных
offline-first приложений
14Reflex - offline first for human beings
ЧТО ТАКОЕ REFLEX?
Методология
15Reflex - offline first for human beings
В ЧЕМ УНИКАЛЬНОСТЬ REFLEX?
• Любой клиент• Любой backend• Любая* база данных• Любая поддерживающая технология
16Reflex - offline first for human beings
КАК УСТРОЕН REFLEX?
17Reflex - offline first for human beings
КАК ДАННЫЕ ХРАНЯТСЯ И ИСПОЛЬЗУЮТСЯ?
?
18Reflex - offline first for human beings
КАК ДАННЫЕ ХРАНЯТСЯ И ИСПОЛЬЗУЮТСЯ?
19Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБМЕН ДАННЫМИ?
?
Client-side storage
Partial database
replica
20Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБМЕН ДАННЫМИ?
21Reflex - offline first for human beings
КАК ИДЕНТИФИЦИРОВАТЬ ДАННЫЕ ПОЛЬЗОВАТЕЛЯ?
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replica
?
22Reflex - offline first for human beings
КАК ИДЕНТИФИЦИРОВАТЬ ДАННЫЕ ПОЛЬЗОВАТЕЛЯ?
23Reflex - offline first for human beings
КАК РАБОТАТЬ С ДАННЫМИ?
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replicaPermissions
?
24Reflex - offline first for human beings
КАК РАБОТАТЬ С ДАННЫМИ?
25Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replica
?Permissions
Полносвязный graph
данных на клиенте
26Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?
27Reflex - offline first for human beings
КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?
28Reflex - offline first for human beings
КОНФЛИКТЫ – ИНОГДА ЭТО ХОРОШО
29Reflex - offline first for human beings
КОНФЛИКТЫ – ИНОГДА ЭТО ХОРОШО
30Reflex - offline first for human beings
GET LATEST
31Reflex - offline first for human beings
КАК ЭТО ВЫГЛЯДИТ ВЖИВУЮ
Обратный HTTP
Простая выборка
Client-side storage
Partial database
replica
Мультиверсионность
Permissions
Полносвязный graph
данных на клиенте