Обновить

Велосипед для жрицы Трои, или как мы переизобретали Outbox для нетранзакционной базы данных

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.5K
Всего голосов 9: ↑8 и ↓1+7
Комментарии4

Комментарии 4

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

Leased Outbox
Leased Outbox

В целом похоже на правду, единственное не совсем понятно, что под "координацией" имеется в виду. Мы писали про внутреннюю механику 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

Так точнее?

Ага, да

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
l.tbank.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия