Event Sourcing и CQRS
Методологии и паттерны написания бизнес-логики, при которых состояние системы восстанавливается из событий.
Продукт
Собственная технологическая платформа
Задача
Задача заказчика и то, что мешало решить её раньше.
Собирать каждый проект из готовых библиотек: значит наследовать их ограничения. Мы построили собственный фундамент, чтобы задавать архитектуру, а не подстраиваться под неё.
Механики
Механики, из которых собран продукт.
Методологии и паттерны написания бизнес-логики, при которых состояние системы восстанавливается из событий.
Функционал добавляется и меняется без приостановки текущей версии и работающих сервисов.
Развёртывание на разных серверах для географической близости к заказчику.
Подключение к любому внешнему сервису: обмен данными запросами или выдачей информации.
Конвейер
Путь запроса через платформу: от внешней системы до ответа, который собран из журнала событий.
Внешние системы обращаются по HTTP или WebSocket. Входная точка: маршрутизатор: TLS, распределение запросов, ограничение частоты обращений.
Логика разложена на небольшие сервисы. Каждый отвечает за свою часть и не вызывает соседей напрямую.
Сервис не переписывает состояние молча: он записывает событие. Из журнала восстанавливается и актуальное представление данных, и полная история операций.
Брокер доставляет его остальным сервисам: очереди и топики, гарантированная доставка, повторная обработка после сбоя.
Чтение и запись разделены: представления для чтения собираются заранее и обновляются по событиям, не конкурируя с проведением операций.
Чтение отдаётся из заранее собранных представлений: быстро и без блокировки записи.
Место в стеке
Odin: нижний слой: на нём стоят и веб-продукты, и сервисы заказчиков.
Контур разворачивается на своих серверах и может занимать несколько площадок: данные оказываются ближе к пользователям.
Брокер сообщений, хранилища, маршрутизатор, оркестрация, мониторинг. Собираются в комплектацию под задачу.
Продукты компании и сервисы заказчиков: Udeu, «Амбиции», бэк-офисы, консьерж-системы.
Результат
Что эти свойства платформы дают конкретному продукту.
Сервисы связаны контрактами и событиями, а не общей базой кода: изменение одного не тянет за собой остальные.
Две версии сервиса работают одновременно, поэтому выкатка и откат проходят без остановки обслуживания.
Состояние восстанавливается из журнала событий: разбор произошедшего не требует отдельной системы.
Представления собираются заранее и обновляются по событиям, поэтому отчёты не мешают проведению операций.
Комплектация подбирается под задачу: от инсталляции на одном сервере до распределённого контура.
Несколько площадок с репликацией данных и переключением трафика между ними.
Технологии
Платформа, стек и площадки, на которых работает продукт.
Технологии
Платформы
Ссылки
Сайт продукта и материалы о нём.
Живое демо
Демо-доступ предоставляется по запросу.
Опыт
Проекты, в которых этот продукт уже работает.
Развернём white-label, настроим процессы и подключим вашу команду.