Событийно-ориентированная архитектура на Golang — Michael Stack — обложка книги
384 страниц
Go (Golang)
PDF
4.5

Событийно-ориентированная архитектура на Golang

Строим масштабируемые системы на Go

Автор:

Год:

Краткое содержимое:

Введение

Книга «Event-Driven Architecture in Golang» (2022) авторства Michael Stack — это практическое руководство по построению современных, масштабируемых и отказоустойчивых систем на языке Go с использованием событийно-ориентированного подхода. В эпоху микросервисов и облачных вычислений EDA (Event-Driven Architecture) становится стандартом де-факто для высоконагруженных приложений. Книга предлагает не только теорию, но и множество примеров кода, архитектурных паттернов и best practices.

О чём книга

Автор последовательно раскрывает концепцию событийно-ориентированной архитектуры: от базовых понятий (событие, канал, обработчик) до продвинутых тем, таких как саги, CQRS, event sourcing и интеграция с облачными провайдерами (AWS, GCP). Особое внимание уделяется реализации на Go — языку, идеально подходящему для построения конкурентных и асинхронных систем. Рассматриваются популярные брокеры сообщений: Kafka, RabbitMQ, NATS, а также облачные сервисы (SQS, SNS, Pub/Sub).

Для кого эта книга

Книга рассчитана на Go-разработчиков среднего и продвинутого уровня, которые уже знакомы с основами языка и хотят освоить проектирование распределённых систем. Она будет полезна архитекторам программного обеспечения, DevOps-инженерам и всем, кто стремится перейти от монолита к микросервисам. Новичкам в Go может потребоваться предварительное изучение базового синтаксиса и конкурентности.

Что узнает читатель

  • Основы EDA: что такое события, каналы, обработчики, гарантии доставки (at-most-once, at-least-once, exactly-once).
  • Паттерны интеграции: Event Notification, Event-Carried State Transfer, CQRS, Event Sourcing.
  • Работа с брокерами: настройка и использование Kafka, RabbitMQ, NATS на Go (библиотеки Sarama, amqp, nats.go).
  • Облачные сервисы: AWS SQS/SNS, Google Cloud Pub/Sub, Azure Event Grid.
  • Обработка ошибок и идемпотентность: как гарантировать целостность данных при сбоях.
  • Тестирование: unit-тесты, интеграционные тесты, тестирование контрактов для событийных систем.
  • Мониторинг и трассировка: OpenTelemetry, логирование, метрики.
  • Безопасность: аутентификация, авторизация, шифрование событий.

Сильные стороны

Главное достоинство книги — практическая направленность. Каждая глава содержит готовые к использованию примеры кода, которые можно адаптировать под свои проекты. Автор уделяет внимание не только успешным сценариям, но и типичным ошибкам, объясняя, как их избежать. Отдельно стоит отметить главу про саги и распределённые транзакции — сложная тема раскрыта доступно и с примерами. Книга написана живым языком, без излишней академичности, что делает её чтение увлекательным.

Кому рекомендуется

Рекомендую книгу всем Go-разработчикам, которые хотят выйти на новый уровень проектирования систем. Она станет настольным руководством для тех, кто строит высоконагруженные сервисы, работает с микросервисной архитектурой или планирует миграцию с монолита. Также будет полезна техническим лидам и архитекторам для принятия обоснованных решений при выборе паттернов и инструментов.

В целом, «Event-Driven Architecture in Golang» — это качественное, современное и глубокое пособие, которое заполняет важную нишу в литературе по Go. Оно поможет вам не только понять теорию, но и применить её на практике, создавая надёжные и масштабируемые системы.

Рекомендаций