InfoQ Homepage Event Driven Architecture Content on InfoQ
-
Versioning of Events in Event Sourced Systems
A challenge with event sourced systems is that events put in the event store years ago must be readable today, even though the software has gone through numerous changes, Greg Young stated in his presentation at this year’s DDD eXchange conference. If a system can be taken down, versioning of events is relatively simple. The real challenge comes when a system can’t be taken down.
-
Managing Data in Microservices
Randy Shoup from Stitch Fix team spoke at QCon New York 2017 Conference about managing the data and isolated persistence in Microservices based applications. He also talked about events as a first class construct for microservices.
-
Overview of the Reliable Event Delivery System at Spotify
Spotify clients generate up to 1.5 million events per second at peak hours and all are handled by their Event Delivery System, designed to have a predictable latency and to never lose an event, Igor Maravic noted in his presentation at the recent QCon London conference, where he gave a high level overview of the system and some of the key operational aspects.
-
Concurrent and Distributed Programming in the Future
The world is concurrent with everything around us asynchronous and event oriented. Concurrency and the cloud are things every developer will have to deal with in the future, Joe Duffy claimed in his keynote at the recent QCon London conference. At the heart of this is communication, which is essential both for concurrent and distributed systems.
-
Hazelcast Release Jet, Open-Source Stream Processing Engine
Hazelcast, previously known for the open-source caching and in-memory data grid technologies, has announced a major release of their new stream processing engine, Jet.
-
Moving a Monolithic Application towards a Microservices Architecture
Migrating an existing system towards microservices is very different from building a new micoservices-based system, Joris Kuipers, architect at Trfork Amsterdam, claims in a presentation describing an ongoing process of refactoring a large monolithic application, based on CQRS using Axon framework, towards a microservices architecture.
-
Start with Events and DDD When Building Microservices
Domain-Driven Design (DDD) is a great technique bringing designs closer to the domains we are working in, but too often we make early decisions with a focus on structure, which is not the intention of DDD. Instead we should start with the events in a domain, Russ Miles claims when describing the advantages of going “events-first” when building microservices.
-
Microsoft Open-Sources P Language for Safe Async Event-Driven Programming
Microsoft’s recently open-sourced P language aims to make it possible to write safe asynchronous event-driven programs on Linux, macOS, and Windows.
-
Vaughn Vernon on Microservices and Domain-Driven Design
Although a monolith can be modeled in a respectable way, often they are turned into a big ball of mud. This is caused by multiple domain models becoming entangled within the monolith, and in Vaughn Vernon's experience this can happen within a few weeks or months, he claimed in a presentation at the Scala Days conference earlier this year.
-
Comparison of Event Sourcing with Stream Processing
Event sourcing and CQRS are two patterns that has emerged in the Domain-Driven Design (DDD) community. Stream processing builds on similar ideas but has emerged in a different community, Martin Kleppmann noted in his presentation at the Domain-Driven Design Europe conference earlier this year comparing event sourcing with stream processing.
-
A Whole System Based on Event Sourcing is an Anti-Pattern
Command Query Responsibility Segregation (CQRS) was never meant to be the end goal of what we are trying to achieve, it is a stepping stone towards the ideas of Event sourcing, Greg Young stated in his presentation at the Domain-Driven Design Europe conference earlier this year. He noted though that just applying CQRS is still a valuable pattern.
-
Moving from Transactions to Streams to Gain Consistency
With many databases in a system they are rarely independent from each other, instead pieces of the same data are stored in many of them. Using transactions to keep everything in sync is a fragile solution. Working with a stream of changes in the order they are created is a much simpler and more resilient solution, Martin Kleppmann stated in his presentation at the recent QCon London conference.
-
CQRS Example Using Axon Framework
Command Query Responsibility Segregation (CQRS) separates the part that changes the state from the part that queries the state in an application. Axon is a Java framework implementing the building blocks of CQRS to help in when building CQRS applications, Dadepo Aderemi, writes in a series of blog post explaining CQRS by building a small demo application based on the Axon Framework.
-
CQRS, Read Models and Persistence
Storing events in a relational database and creating the event identity as a globally unique and sequentially increasing number is an important and maybe uncommon decision when working with an event-sourced Command Query Responsibility Segregation (CQRS) system Konrad Garus writes in three blog posts describing his experiences from a recent project building a system of relatively low scale.
-
Introducing Reactive Streams
Modern software increasingly operates on data in near real-time. There is business value in sub-second responses to changing information and stream processing is one way to help turn data into knowledge as fast as possible, Kevin Webber explains in an introduction to Reactive Streams.