• Станции – это прикладные сервисы.
• Ж/д дорога между станциями – вызов метода одним сервисом у другого.
• Пассажиры – обрабатываемые структуры данных.
• Маршрут от ст. А до ст. Б – флоу обработки данных в рамках фичи.
• Данные садятся на станции А.
• Станция А их обрабатывает и с помощью поезда-рантайма передаёт станции Б.
• Станции, требующие при въезде на неё синхронизации данных, помечаются особо.
• Данные высаживаются на целевой станции Б.
github.com/pavelosipov/PO…
broomburgo.github.io/fun-ios/post/l…
• Никаких мьютексов в прикладном коде
• Вся потокобезопасность в инфраструктуре (ReactiveCocoa, SQLite, LMDB, POSLens)
• Общение одношедулерных сервисов – прямые вызовы
• Общение разношедулерных сервисов – косвенные вызовы & shared database.
habr.com/ru/company/mai…