Building event-driven architecture piece by piece By David Boyne
Building event-driven architecture piece by piece By David Boyne
Architecting and building event-driven architectures takes time. The great thing about this architecture style is it embraces patterns that helps us approach design and implementation in an evolutionary way.
Migrating to an event-driven architecture
-
Many of us have legacy systems and we are trying to modernize them. Modernization of architectures can take years, and there any many pattens out their people may follow to help.
-
One of these patterns is to use event-driven architectures to help migrate off legacy applications onto new architecture paradigms.
-
For example, if you are on-prem and want to migrate into the cloud you could use the strangler pattern with event-driven architectures to migrate business logic.
-
Legacy applications may raise events that new systems can listen to and react.
-
One thing to be aware of, if you are migrating away from legacy applications don’t just take the domain as it is and migrate this domain into your architecture, domains change over time, models change and requirements change
-
Explore bounded-context mappings options to help you map information between boundaries.
Embrace evolutionary architecture
-
Architectures evolve over time as do requirements and the domain we operate in. Modern companies need to embrace the concepts of evolutionary architecture to remain competitive and agile in the ever-changing technical landscape.
-
Event-driven architectures enable us to capture the concept of evolutionary architecture.
-
As consumers can come and go within our systems, this allows to create new teams, new features that can operate independent consuming events from other services.
-
As we scale our organisations, we search for patterns to help us scale and not slow us down. Event-driven architectures can help with this.
-
Think about how your architecture lets you scale. Think about where parts of your architecture slows you down, can event-driven architectures help here?
Discovering domains takes times
-
Many folks use EventStorming or Event Modeling to define their events and domains within their organisations. From that domain-driven design practices can be used to help map domains into architecture/solutions. This can be a great way to discover your domain, but getting hands on also is a great way to discover.
-
Theory can only take us so far, we can design and think, but we also discover domains through implementation. This takes time. Your domain is ever changing and evolving, you need to embrace this.
-
Keep exploring your domains, challenge assumptions and use techniques like EventStorming or Event Modeling to help you discover and document your domains.
-
Remember domain discovery is a continuous process.
Familiarise yourself with EDA patterns and concepts
-
When you start diving deeper into event-driven architecture you will find many patterns, concepts and trade-offs to consider.
-
EDA visuals was designed to help you familiarise with these concepts, each visual has many resources you can dive deeper and learn.
-
Understand that most problems you find with EDA there is probably a solution to it. Look at messaging patterns and integrations patterns.
Extra Resources
- Navigating the journey of event-driven architecture (Video) - Talk I gave in 2023 to help people navigate event-driven architectures, this covers ideas of where you should start, patterns you can use and how to document and operate your event architectures.
- Enterprise integration patterns (Website) - Want to get up to speed with integration patterns and trade-offs, great resource here to dive deeper.
- Minimum Variable Migrations (Video) - Talk from Ben Ellerby is worth watching if you are interesting in Migrations.
- Many meanings of event-driven architecture (Video) - Great talk by Martin Fowler to help us understand event-driven architecture. If you are just starting out this is worth a watch.
- Advanced integration patterns and trade-offs for loosely coupled systems - Talk by Dirk Frohner and Gregor Hohpe, worth watching to learn more about patterns and trade-offs.
- Find events in your existing application - EventStorming can help you identify events for new applications, but also systems that already exist, this can help find events in your legacy application.
- To conform or not conform to legacy events? - Careful taking events from legacy applications as they are (conformist pattern), you may want to map. This visual can help
- Avoid the big ball of mud when building event-driven architectures - Visual to help you avoid a big ball of mud when building your architecture. Make sure you have clear domains, and boundaries between your systems.
Explore other visuals
Want to work together?
If you're interested in collaborating, I offer consulting, training, and workshops. I can support you throughout your event-driven architecture journey, from design to implementation. Feel free to reach out to discuss how we can work together, or explore my services on EventCatalog.
Download EDA Visuals
Join over 10,000 others learning EDA and download all the EDA visuals directly to your computer. This document updates everytime a new visual is added so make sure you come back to get the latest.