Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

Управляем состоянием распределенных систем без боли

Архитектуры, масштабируемость

Архитектурные паттерны

Микросервисы, SOA
Асинхронное программирование, реактивное программирование
Отказоустойчивость
Распределенные системы
GO

Доклад принят в программу конференции

Целевая аудитория

Архитекторы систем, разработчики микросервисов и все, кто интересуется изменением данных в распределенных системах.

Тезисы

Управление состоянием в сложном микросервисном ландшафте — задача не из легких. Как только процесс изменения затрагивает несколько слабосвязанных сущностей, проблема их консистентности встает поперек горла архитектора. На помощь приходят многофазные транзакции, Saga, X/Open XA... Теперь вместо одной проблемы у вас две.

В процессе разработки сервиса Containerum Kubernetes Service мы пошли другим путем — построили распределенную систему на основе доменной модели, управляемой конечными автоматами, и синхронно-асинхронной коммуникации между сервисами посредством gRPC и Kafka. Это позволило нам управлять сложными иерархическими сущностями, разбросанными на полдюжины сервисов, гибко обрабатывать ошибки и забыть про неконсистентность и болезненные роллбэки. Нашим опытом, ошибками и успехами я с вами и поделюсь.

Technical Lead в MTC Cloud, Cloud Architect, основатель Golang Voronezh и SAP Community Voronezh, соведущий подкаста Z-Namespace, организатор конференций и митапов.

MTC Cloud

MTC Cloud — облачное подразделение компании МТС.

Видео

Другие доклады секции

Архитектуры, масштабируемость