32
Reflex - offline first for human beings 1 Offline-first приложение на Reflex Докладчик: Денис Яремов

Денис Яремов "Offline-first приложение на Reflex"

  • Upload
    fwdays

  • View
    345

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Денис Яремов "Offline-first приложение на Reflex"

1Reflex - offline first for human beings

Offline-first приложение на ReflexДокладчик: Денис Яремов

Page 2: Денис Яремов "Offline-first приложение на Reflex"

2Reflex - offline first for human beings

OFFLINE-FIRST

Как я к этому пришел?

Page 3: Денис Яремов "Offline-first приложение на Reflex"

3Reflex - offline first for human beings

OFFLINE ОДНИМ СЛОВОМ

БОЛЬ

Page 4: Денис Яремов "Offline-first приложение на Reflex"

4Reflex - offline first for human beings

ShareJS

Redux

DiffSync

Page 5: Денис Яремов "Offline-first приложение на Reflex"

5Reflex - offline first for human beings

CAP

Page 6: Денис Яремов "Offline-first приложение на Reflex"

6Reflex - offline first for human beings

OFFLINE И ФИЗИКА

Все клиенты видят одно (общее)

состояние данных

Каждый клиентможет всегда читать и писать данные

Система работает хорошо, не смотря на физическое деление сети

Page 7: Денис Яремов "Offline-first приложение на Reflex"

7Reflex - offline first for human beings

C – A – P

C + A + P < 3

Page 8: Денис Яремов "Offline-first приложение на Reflex"

8Reflex - offline first for human beings

C – A – P И ВОСПРИЯТИЕ

Eventual consistency = ½ consistency

Page 9: Денис Яремов "Offline-first приложение на Reflex"

9Reflex - offline first for human beings

C – A – P И ВОСПРИЯТИЕ

Eventual availability?

Page 10: Денис Яремов "Offline-first приложение на Reflex"

10Reflex - offline first for human beings

OFFLINE И ФИЗИКА

Все клиенты видят одно (общее)

состояние данных

Каждый клиентможет всегда читать и писать данные

Система работает хорошо, не смотря на физическое деление сети

Page 11: Денис Яремов "Offline-first приложение на Reflex"

11Reflex - offline first for human beings

C – A – P И ВОСПРИЯТИЕ

Eventual availability = ½ availability

Page 12: Денис Яремов "Offline-first приложение на Reflex"

12Reflex - offline first for human beings

C – A – P И ВОСПРИЯТИЕ

½ C + ½ A + P = ?

Page 13: Денис Яремов "Offline-first приложение на Reflex"

ReflexМетодология для создания интерактивных

offline-first приложений

Page 14: Денис Яремов "Offline-first приложение на Reflex"

14Reflex - offline first for human beings

ЧТО ТАКОЕ REFLEX?

Методология

Page 15: Денис Яремов "Offline-first приложение на Reflex"

15Reflex - offline first for human beings

В ЧЕМ УНИКАЛЬНОСТЬ REFLEX?

• Любой клиент• Любой backend• Любая* база данных• Любая поддерживающая технология

Page 16: Денис Яремов "Offline-first приложение на Reflex"

16Reflex - offline first for human beings

КАК УСТРОЕН REFLEX?

Page 17: Денис Яремов "Offline-first приложение на Reflex"

17Reflex - offline first for human beings

КАК ДАННЫЕ ХРАНЯТСЯ И ИСПОЛЬЗУЮТСЯ?

?

Page 18: Денис Яремов "Offline-first приложение на Reflex"

18Reflex - offline first for human beings

КАК ДАННЫЕ ХРАНЯТСЯ И ИСПОЛЬЗУЮТСЯ?

Page 19: Денис Яремов "Offline-first приложение на Reflex"

19Reflex - offline first for human beings

КАК ПРОИСХОДИТ ОБМЕН ДАННЫМИ?

?

Client-side storage

Partial database

replica

Page 20: Денис Яремов "Offline-first приложение на Reflex"

20Reflex - offline first for human beings

КАК ПРОИСХОДИТ ОБМЕН ДАННЫМИ?

Page 21: Денис Яремов "Offline-first приложение на Reflex"

21Reflex - offline first for human beings

КАК ИДЕНТИФИЦИРОВАТЬ ДАННЫЕ ПОЛЬЗОВАТЕЛЯ?

Обратный HTTP

Простая выборка

Client-side storage

Partial database

replica

?

Page 22: Денис Яремов "Offline-first приложение на Reflex"

22Reflex - offline first for human beings

КАК ИДЕНТИФИЦИРОВАТЬ ДАННЫЕ ПОЛЬЗОВАТЕЛЯ?

Page 23: Денис Яремов "Offline-first приложение на Reflex"

23Reflex - offline first for human beings

КАК РАБОТАТЬ С ДАННЫМИ?

Обратный HTTP

Простая выборка

Client-side storage

Partial database

replicaPermissions

?

Page 24: Денис Яремов "Offline-first приложение на Reflex"

24Reflex - offline first for human beings

КАК РАБОТАТЬ С ДАННЫМИ?

Page 25: Денис Яремов "Offline-first приложение на Reflex"

25Reflex - offline first for human beings

КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?

Обратный HTTP

Простая выборка

Client-side storage

Partial database

replica

?Permissions

Полносвязный graph

данных на клиенте

Page 26: Денис Яремов "Offline-first приложение на Reflex"

26Reflex - offline first for human beings

КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?

Page 27: Денис Яремов "Offline-first приложение на Reflex"

27Reflex - offline first for human beings

КАК ПРОИСХОДИТ ОБРАБОТКА КОНФЛИКТОВ?

Page 28: Денис Яремов "Offline-first приложение на Reflex"

28Reflex - offline first for human beings

КОНФЛИКТЫ – ИНОГДА ЭТО ХОРОШО

Page 29: Денис Яремов "Offline-first приложение на Reflex"

29Reflex - offline first for human beings

КОНФЛИКТЫ – ИНОГДА ЭТО ХОРОШО

Page 30: Денис Яремов "Offline-first приложение на Reflex"

30Reflex - offline first for human beings

GET LATEST

Page 31: Денис Яремов "Offline-first приложение на Reflex"

31Reflex - offline first for human beings

КАК ЭТО ВЫГЛЯДИТ ВЖИВУЮ

Обратный HTTP

Простая выборка

Client-side storage

Partial database

replica

Мультиверсионность

Permissions

Полносвязный graph

данных на клиенте

Page 32: Денис Яремов "Offline-first приложение на Reflex"

32Reflex - offline first for human beings

КОНТАКТЫ

Денис Яремов[email protected]