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.
-
#10 Treat Your Domain Models and APIs as Products
A domain model and the APIs it generates are not implementation details of a service. They are the contracts every consumer depends on, so they need the same lifecycle as any other product: quality, versions, publishing, and a place where people can find them.
-
#11 The Master YAML: A Manifest of Your Entire Architecture
As Arcadia Editions grows, nobody sees the whole system in one place. A single YAML file, zenwave-architecture.yml, points at every domain, service and contract and how they connect, without copying any of them. The pipeline keeps it current. Humans, tools and agents can all navigate from there.
-
#12 Arcadia Architecture Manifest meets Event Catalog
The architecture manifest is an index of every domain, service and contract, but most people will never open that YAML file. EventCatalog is the website that shows the same index. A generator collects the pages from the APIs that the teams already publish, and a release pipeline keeps the website current.
-
#13 Provisioning Infrastructure with Terraform from AsyncAPI
When your AsyncAPI says one thing and your Kafka platform does another, people stop trusting the API. In Arcadia the AsyncAPI file stays the source of truth for the platform too: we generate the Terraform for topics, schemas and ACLs from it, merging to develop provisions the development cluster, and each release packs that Terraform so the same files are promoted to pre and prod.
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 articleA Software Engineering Hypothesis for the Age of Agents
Agentic development makes software cheaper to produce. That does not reduce the need for software engineering. This is a public hypothesis: keep the understanding of the system explicit, generate what is already decided, then use the result from the customer's perspective and feed what you learn back into the model.
→ Read articleAsyncAPI: Which Reference Strategy to Use and Why
AsyncAPI's $ref lets a client spec point to a provider spec without duplicating it. When that spec drives both application contracts and infrastructure provisioning, the URL behind the $ref is an important decision to answer. A pinned version, a environment alias, or the tip of main: each offer different trade-offs.
→ 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 -
Practical Event Storming with AsyncAPI v3 and ZenWave SDK
How to move from Event Storming sessions to working AsyncAPI v3 definitions and generated code using ZenWave SDK.
→ 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