
Part 5 of the Production GraphQL series — unit testing DGS components with Spock, evolving your GraphQL schema without breaking clients, and federating multiple services into a unified graph.
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 3 of the Production GraphQL series — authentication and authorization with @PreAuthorize, error sanitization to prevent information leakage, and query depth and complexity limits to stop abuse.
Read more
How to test Axon 5 aggregate state machines using Spock and AxonTestFixture — from creation commands to guard clause rejections, with practical patterns for event chaining, timestamp handling, and injected services.
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
How we debugged intermittent 'Session not found' errors in a Spring AI MCP server on GKE — and why switching to stateless transport is the right answer for Kubernetes deployments.
Read more
Why ReactiveSecurityContextHolder is always empty inside Axon query handlers, three approaches we considered, and the Axon MetaData solution that keeps query objects clean.
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