Управляем состоянием распределенных систем без боли
Доклад принят в программу конференции
Целевая аудитория
Тезисы
Управление состоянием в сложном микросервисном ландшафте — задача не из легких. Как только процесс изменения затрагивает несколько слабосвязанных сущностей, проблема их консистентности встает поперек горла архитектора. На помощь приходят многофазные транзакции, Saga, X/Open XA... Теперь вместо одной проблемы у вас две.
В процессе разработки сервиса Containerum Kubernetes Service мы пошли другим путем — построили распределенную систему на основе доменной модели, управляемой конечными автоматами, и синхронно-асинхронной коммуникации между сервисами посредством gRPC и Kafka. Это позволило нам управлять сложными иерархическими сущностями, разбросанными на полдюжины сервисов, гибко обрабатывать ошибки и забыть про неконсистентность и болезненные роллбэки. Нашим опытом, ошибками и успехами я с вами и поделюсь.
Technical Lead в MTC Cloud, Cloud Architect, основатель Golang Voronezh и SAP Community Voronezh, соведущий подкаста Z-Namespace, организатор конференций и митапов.
MTC Cloud
Видео
Другие доклады секции
Архитектуры, масштабируемость