Book Description
Many forces affect software today: larger datasets, geographical disparities, complex company structures, and the growing need to be fast and nimble in the face of change. Proven approaches such as service-oriented and event-driven architectures are joined by newer techniques such as microservices, reactive architectures, DevOps, and stream processing. Many of these patterns are successful by themselves, but as this practical ebook demonstrates, they provide a more holistic and compelling approach when applied together.
Author Ben Stopford explains how service-based architectures and stream processing tools such as Apache Kafka can help you build business-critical systems. You'll learn how to apply patterns including Event Sourcing and CQRS, and how to build multi-team systems with microservices and SOA using patterns such as "inside out databases" and "event streams as a source of truth." These approaches provide a unique foundation for how these large, autonomous service ecosystems can communicate and share data.
- Learn why streaming beats request-response based architectures in complex, contemporary use cases
- Understand why replayable logs such as Kafka provide a backbone for both service communication and shared datasets
- Explore how event collaboration and event sourcing patterns increase safety and recoverability with functional, event-driven approaches
- Build service ecosystems that blend event-driven and request-driven interfaces using a replayable log and Kafka's Streams API
- Scale beyond individual teams into larger, department- and company-sized architectures, using event streams as a source of truth
This open access book is Complimented by Confluent. You can download Designing Event-Driven Systems ebook for free in PDF format (5.4 MB).
Table of Contents
PART I
Setting the Stage
Chapter 1
Introduction
Chapter 2
The Origins of Streaming
Chapter 3
Is Kafka What You Think It Is?
Chapter 4
Beyond Messaging: An Overview of the Kafka Broker
PART II
Designing Event-Driven Systems
Chapter 5
Events: A Basis for Collaboration
Chapter 6
Processing Events with Stateful Functions
Chapter 7
Event Sourcing, CQRS, and Other Stateful Patterns
PART III
Rethinking Architecture at Company Scales
Chapter 8
Sharing Data and Services Across an Organization
Chapter 9
Event Streams as a Shared Source of Truth
Chapter 10
Lean Data
PART IV
Consistency, Concurrency, and Evolution
Chapter 11
Consistency and Concurrency in Event-Driven Systems
Chapter 12
Transactions, but Not as We Know Them
Chapter 13
Evolving Schemas and Data over Time
PART V
Implementing Streaming Services with Kafka
Chapter 14
Kafka Streams and KSQL
Chapter 15
Building Streaming Services