Whenever people are excited about an idea or technology, they come up with buzzwords to describe it. Perhaps you have come across some of the following terms, and wondered what they are about: “stream processing”, “event sourcing”, “CQRS”, “reactive”, and “complex event processing”.
Sometimes, such self-important buzzwords are just smoke and mirrors, invented by companies that want to sell you their solutions. But sometimes, they contain a kernel of wisdom that can really help us design better systems.
In this report, Martin goes in search of the wisdom behind these buzzwords. He discusses how event streams can help make your applications more scalable, more reliable, and more maintainable. People are excited about these ideas because they point to a future of simpler code, better robustness, lower latency, and more flexibility for doing interesting things with data. After reading this report, you’ll see the architecture of your own applications in a completely new light.
This report focuses on the architecture and design decisions behind stream processing systems. We will take several different perspectives to get a rounded overview of systems that are based on event streams, and draw comparisons to the architecture of databases, Unix, and distributed systems. Confluent, a company founded by the creators of Apache Kafka, is pioneering work in the stream processing area and is building an open source stream data platform to put these ideas into practice.
For a deep dive into the architecture of databases and scalable data systems in general, see Martin Kleppmann’s book “Designing Data-Intensive Applications,” available from O’Reilly.
—Neha Narkhede, Cofounder and CTO, Confluent Inc.