Modular Monolith: Why Not Microservices
How Vivolar uses a package-by-domain structure with ArchUnit enforcement to get the benefits of modularity without the operational overhead of microservices.
architecture spring-boot ddd archunit
Deep dives into the architecture decisions that shaped Vivolar: from choosing a modular monolith to implementing event-driven side effects.
How Vivolar uses a package-by-domain structure with ArchUnit enforcement to get the benefits of modularity without the operational overhead of microservices.
How ADR-001 established the event-driven pattern for cross-cutting concerns, including the mutable event pattern for synchronous results.
How Vivolar uses TestContainers for integration tests, the test pyramid, and why we never mock the database.