
Why we replaced Axon sagas — and DeadlineManager — with a Postgres-backed JobStateService, a Spring @Scheduled sweeper, and Temporal for the workflow-shaped work, plus the production gotcha we hit on the way.
Read more
Spring Modulith can generate C4 component diagrams and module documentation from your actual code. Wire it into CI, publish to GitHub Pages, and your architecture docs are always in sync — no manual drawing required.
Read more
Spring Modulith turns module boundaries from hallway agreements into build failures. Here's how to use named interfaces, gradual enforcement, and modularity tests to keep a modular monolith maintainable — and why it matters even more in the age of AI-assisted coding.
Read more
A practical guide to teaching your AI coding assistant your codebase conventions using Claude Code Skills — reusable Markdown templates that prevent repeated code review corrections.
Read more
Java 21 virtual threads solve thread scalability for blocking code. WebFlux solves backpressure, streaming, and event-driven composition. They are not competitors — they solve different problems, and the 'WebFlux is dead' take is dangerously wrong.
Read more
Part 2 of the Production GraphQL series — how DGS data loaders batch database calls to eliminate the N+1 problem, when to use MappedBatchLoader vs BatchLoader, and pagination patterns for GraphQL APIs.
Read more
Part 1 of the Production GraphQL series — how Netflix DGS and Spring for GraphQL merged into one stack, schema-first development patterns, code generation, and the three-layer type system that keeps your API maintainable.
Read more
Command metadata doesn't automatically propagate to events in Axon Framework 5. Here's how CorrelationDataProvider fixes the silent data loss — and why it's so hard to catch.
Read more
A hands-on account of migrating a CQRS/ES application from Axon Framework 4.12 to 5.0 — the API upheaval, replacing sagas with stateful event handlers, and the reactive payoff.
Read more