The Arcadia Editions Series
The Fictional Company I Built to Explore Event-Driven Architecture
A fictional board game retailer built to explore event-driven architecture end-to-end. Domain discovery, flow modeling, API generation, and running Spring Boot services - all in the open.
-
#02 DDD Problem Space vs Solution Space
The solution space is your business. But only if it needs to be discovered. If it is already known, you are not building a business, you are building a commodity.
-
#03 Event Storming Arcadia Editions: Discovering the Order Flow
We know what Arcadia Editions wants to deliver. Now we need to discover how. Event Storming is how you turn that conversation into a shared understanding of the business. This is what that looks like in practice.
-
#05 From Events to Bounded Contexts: Finding Arcadia Editions' Architecture
Large systems become unmanageable when everyone shares the same model. This post walks through the heuristic we used to find those boundaries in Arcadia Editions, looking for the business objects that act as centers of gravity for commands and events, and using the consistency requirement to draw the line around each one
-
#06 Completing the ZFL: From Bounded Contexts to Systems
Event Storming has two phases. First you discover the flow. Then you find the centers of gravity. The service field in ZFL is where that second phase becomes explicit, and where you start building the architectural world model.
Latest Articles
View all
DDD In Practice: From Ubiquitous Language DSL to Complete Spring-Boot Kotlin Project
How to use ZenWave SDK to implement DDD principles in practice, from Event Storming discoveries to a complete Spring Boot Kotlin project using ZDL as Ubiquitous Language.
→ Read article
API First 360: AsyncAPI as the Source of Truth for Code and Infrastructure
API First should not stop at generated code. In event-driven systems, the same AsyncAPI contract should help producers, consumers, and platform teams understand and provision the infrastructure that makes the API real.
→ Read article
Apicurio Registry Maven Plugin: CLI Mode and Autoconfiguration
Three upstream fixes that make the Apicurio Registry Maven Plugin work from the CLI with minimal configuration
→ Read articleHands-On Architecture
View all-
AsyncAPI Shopping Cart: From Event Contract to Running EDA
How to define an AsyncAPI + Avro contract and derive Kafka producers/consumers for a multi-module event-driven application.
→ Read tutorial -
Order Fulfillment (Kotlin): From Ubiquitous Language to Running Service
How to use a DSL to catpure the Ubiquitous Language and derive a full backend service from it.
→ Read tutorial -
Clinical Tool Modulith (JPA): From Multiple Bounded Contexts to One Modular Monolith
How to derive a modular monolith from multiple bounded contexts, each modeled in DSL, and generate aligned APIs and implementation.
→ Read tutorial
Recent Talks
View all-
Arquitecturas EDA con Spring Modulith y AsyncAPI - Codemotion 25
Cómo diseñar e implementar arquitecturas orientadas a eventos usando Spring Modulith y AsyncAPI, presentado en Codemotion 2025.
→ Watch talk -
Event-Driven Architectures with Spring Modulith and AsyncAPI (Spring I/O 2025)
How to build event-driven architectures using Spring Modulith and AsyncAPI, combining modular monolith patterns with async contract-first design.
→ Watch talk -
AsyncAPI: Full Code Generation for Java with ZenWave SDK
A deep dive into full code generation for Java from AsyncAPI definitions using ZenWave SDK, covering producers, consumers, and contract testing.
→ Watch talk
Artículos en Español
Ver todos-
DDD en la Práctica: De Lenguaje Ubícuo en DSL a Proyecto Completo de Spring Boot con Kotlin
En este artículo exploraremos cómo utilizar ZenWave360 para generar un proyecto completo de Spring Boot con Kotlin a partir de un modelo DSL de Lenguaje Ubicuo.
→ Leer artículo -
Spring Boot con Kotlin frente a Java: Comparativa práctica y guía de integración empresarial
Análisis práctico del desarrollo con Spring Boot usando Kotlin frente a Java, comparando sintaxis, productividad e integración con herramientas como OpenAPI, AsyncAPI y Avro en un entorno empresarial.
→ Leer artículo -
Evitando el API Drift en APIs asincronas con AsyncAPI y ZenWave SDK
Evita errores y pérdida de alineación en tus APIs asíncronas. Descubre cómo AsyncAPI y ZenWave SDK pueden ayudarte a prevenir el API Drift mediante generación de código automatizada y buenas prácticas DevOps.
→ Leer artículo