Комментарии 4
Такая общая схема получается (одной картинкой)?

В целом похоже на правду, единственное не совсем понятно, что под "координацией" имеется в виду. Мы писали про внутреннюю механику Cassandra, она не вынесена на слой бизнес-логики, это встроенная фича
Исходники схемы
graph TB
subgraph Producers["Продюсеры"]
P1[Синхронный продюсер]
P2[Асинхронный продюсер]
end
subgraph Service["Сервис карточного хранилища"]
API[API Layer]
BL[Business Logic]
SER[Сериализатор]
end
subgraph Cassandra["Apache Cassandra"]
subgraph MainTables["Основные таблицы"]
MT[(CARDS_TABLE)]
end
subgraph OutboxTables["Outbox таблицы"]
OE[(OUTBOX_EVENTS)]
CL[(CONSUMER_LOCK)]
end
end
subgraph Consumers["Консьюмеры"]
C1[DWH Consumer]
C2[ETL Consumer]
C3[DRP Consumer]
end
P1 -->|sync| API
P2 -->|async| API
API --> BL
BL --> SER
SER -->|write| MT
SER -->|write| OE
C1 -->|LWT lock + read offset| CL
C2 -->|LWT lock + read offset| CL
C3 -->|LWT lock + read offset| CL
CL -->|offset| OE
OE -->|events| C1
OE -->|events| C2
OE -->|events| C3Так точнее?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Велосипед для жрицы Трои, или как мы переизобретали Outbox для нетранзакционной базы данных