EDM

Создание событийно-управляемых микросервисов - Глава 3 - Обмен информацией и контракты на передачу данных

Создание событийно-управляемых микросервисов - Глава 3 - Обмен информацией и контракты на передачу данных

Переводы: EN

Управляемая событиями модель, сильно зависит от КАЧЕСТВА событий.

События хорошего качества:

  • явно определены через контракты
  • содержат комментарии
  • поддерживают эволюцию с обратной и прямой совместимостью
  • поддерживают генерацию кода
  • ломающие изменения хорошо продуманы

События хорошего качества реализуются с помощью правильных инструментов:

  • используйте форматы Avro/Thrift/Protobuf и никогда не используйте JSON!
  • используйте правильный брокер событий (например, Pulsar)

События хорошего качества проектируются так, чтобы:

  • содержать всю информацию, необходимую потребителям
  • использовать отдельные потоки для каждого типа событий
  • использовать правильные типы данных для своих полей (не используйте строки для чисел, используйте перечисления и т.д.)
  • не используйте поле задающее тип данных и другие поля на его основе
  • быть как можно меньше в размерах
  • учитывать требования потребителей
  • не быть просто сигналами, а содержать всю информацию, необходимую потребителям

Эти темы раскрыты в главе 3 книги, которую мы сейчас изучаем:

Создание событийно-управляемых микросервисов - Глава 1 - Почему именно событийно-управляемые микросервисы

Создание событийно-управляемых микросервисов - Глава 1 - Почему именно событийно-управляемые микросервисы

Переводы: EN

Книжный клуб нашей компании выбрал книгу о микросервисах. Это “Создание событийно-управляемых микросервисов” Адама Беллемара. Оригинал: “Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare

Глава 1 содержит вводную информацию:

Типы архитектур и различия между ними:

  1. Традиционные монолитные архитектуры
  2. Сервисно-ориентированные архитектуры (SOA)
  3. Архитектуры управляемых событиями микросервисов (EDM)

Уровни коммуникативных структур и связанный с ними закон Конвея:

  • бизнес
  • реализация
  • данные

Проблемы с традиционными архитектурами (монолит и SOA), когда вам нужно:

  • добавить новое бизнес-требование
  • вырастить команду и разделить ее на две команды

И как избежать этих проблем при использовании архитектуры EDM