
عنوان:
Event-Driven Architecture in Golang
نویسنده:
Michael Stack
انتشارات:
Packt Publishing
تاریخ انتشار:
2022
حجم:
5.0MB
معرفی کتاب:" Event-Driven Architecture in Golang | ساخت مایکروسرویسهای رویدادمحور در Go "
شروع ساخت microservices مبتنی بر event-driven، شامل الگوهایی برای مدیریت انسجام داده و تابآوری
ویژگیهای کلیدی
- بررسی مزایا و معایب معماریهای event-driven با مثالهای عملی و موارد استفاده
- درک همافزایی با event sourcing، CQRS و domain-driven development در معماری نرمافزار
- ساخت یک معماری اپلیکیشن قدرتمند و کامل تا پایان کتاب
توضیحات کتاب
معماری event-driven در Golang یک رویکرد مدرن برای توسعه اپلیکیشنهایی است که در آن تغییرات وضعیت (state) بهصورت asynchronous، داخلی و خارجی از طریق پیامها رد و بدل میشود. این معماری باعث میشود سیستمها مقیاسپذیرتر و مقاومتر در برابر خطا باشند.
کتاب حاضر با بهرهگیری از مفاهیم پایه تا پیشرفته، شما را با دنیای EDA آشنا میکند. طی این مسیر، میآموزید که چگونه microservicesهایی طراحی و پیادهسازی کنید که از طریق event streams با یکدیگر ارتباط برقرار میکنند.
در پروژه نهایی کتاب، اپلیکیشنی شامل چندین microservice با ساختار orchestrated و choreographed طراحی میکنید که از ارتباط asynchronous بهره میبرند.
در پایان این کتاب، مهارت لازم برای ساخت، تست و deploy مایکروسرویسهای event-driven را کسب خواهید کرد.
آنچه در این کتاب میآموزید
- درک عمیق الگوهای event-driven و شیوههای پیادهسازی آنها
- طراحی و برنامهریزی معماریهای مقیاسپذیر با سهولت
- کاربرد عملی event sourcing در پیگیری تغییرات
- تست و deploy اپلیکیشنهای مبتنی بر microservices
- پایش و بهینهسازی معماری نرمافزار در محیط واقعی
مخاطب این کتاب کیست؟
این کتاب مناسب معماران نرمافزار و برنامهنویسان ارشد است که با زبان Golang آشنایی متوسط دارند و میخواهند سیستمهایی مبتنی بر microservices، CQRS، DDD و event sourcing بسازند. آشنایی با مباحث concurrency در Go برای استفاده بهتر از این کتاب توصیه میشود.
فهرست مطالب
- Contents
- Cover
- Title Page
- Copyright and Credits
- Dedication
- Contributors
- Table of Contents
- Preface
- Part 1: Event-Driven Fundamentals
- Chapter 1: Introduction to Event-Driven Architectures
- Technical requirements
- An exchange of facts
- The MallBots application
- Benefits of EDA
- Challenges of EDA
- Summary
- Chapter 2: Supporting Patterns in Brief
- Domain-driven design
- Domain-centric architectures
- Command and Query Responsibility Segregation
- Application architectures
- Summary
- Further reading
- Chapter 3: Design and Planning
- Technical requirements
- What are we building?
- Finding answers with EventStorming
- Understanding the business
- Recording architectural decisions
- Summary
- Further reading
- Part 2: Components of Event-Driven Architecture
- Chapter 4: Event Foundations
- Technical requirements
- A tour of MallBots
- Taking a closer look at module integration
- Types of events
- Refactoring side effects with domain events
- Summary
- Chapter 5: Tracking Changes with Event Sourcing
- Technical requirements
- What is event sourcing?
- Adding event sourcing to the monolith
- Using just enough CQRS
- Aggregate event stream lifetimes
- Summary
- Chapter 6: Asynchronous Connections
- Technical requirements
- Asynchronous integration with messages
- Implementing messaging with NATS JetStream
- Making the Store Management module asynchronous
- Summary
- Chapter 7: Event-Carried State Transfer
- Technical requirements
- Refactoring to asynchronous communication
- Adding a new order search module
- Building read models from multiple sources
- Summary
- Chapter 8: Message Workflows
- Technical requirements
- What is a distributed transaction?
- Comparing various methods of distributed transactions
- Implementing distributed transactions with Sagas
- Converting the order creation process to use a Saga
- Summary
- Chapter 9: Transactional Messaging
- Technical requirements
- Identifying problems faced by distributed applications
- Exploring transactional boundaries
- Using an Inbox and Outbox for messages
- Summary
- Part 3: Production Ready
- Chapter 10: Testing
- Technical requirements
- Coming up with a testing strategy
- Testing the application and domain with unit tests
- Testing dependencies with integration testing
- Testing component interactions with contract tests
- Testing the application with end-to-end tests
- Summary
- Chapter 11: Deploying Applications to The Cloud
- Technical requirements
- Turning the modular monolith into microservices
- Installing the necessary DevOps tools
- Using Terraform to configure an AWS environment
- Deploying the application to AWS with Terraform
- Summary
- Chapter 12: Monitoring and Observability
- Technical requirements
- What are monitoring and observability?
- Instrumenting the application with OpenTelemetry and Prometheus
- Viewing the monitoring data
- Summary
- Index
- About Packt
- Other Books You May Enjoy
مشخصات
نام کتاب
Event-Driven Architecture in Golang: Building complex systems with asynchronicity and eventual consistency
نویسنده
Michael Stack
انتشارات
Packt Publishing
تاریخ انتشار
2022
ISBN
9781803238012
تعداد صفحات
384
زبان
انگلیسی
فرمت
حجم
5.0MB
موضوع
Event-Driven Architecture