Products Consulting About Blog Contact Us Česky

Java

Spring Modulith in Practice: From Code to Living Architecture Diagrams

Spring Modulith in Practice: From Code to Living Architecture Diagrams

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.

  • Spring Boot
  • Spring Modulith
  • Java
  • C4 Model
  • Architecture
  • Documentation
Read more arrow_forward
Spring Modulith in Practice: Enforcing Architecture in a Growing Monolith

Spring Modulith in Practice: Enforcing Architecture in a Growing Monolith

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.

  • Spring Boot
  • Spring Modulith
  • Java
  • Architecture
  • Modular Monolith
Read more arrow_forward
Mise vs SDKMAN: Why I'm Switching After Years of .sdkmanrc

Mise vs SDKMAN: Why I'm Switching After Years of .sdkmanrc

SDKMAN has been my go-to JDK version manager for years. Mise does everything SDKMAN does — plus Node, Python, Terraform, and 500 other tools — with one config file and near-zero overhead. Here's why I'm switching.

  • Mise
  • SDKMAN
  • Java
  • Developer Tools
  • DevEx
Read more arrow_forward
DGS at Scale: Testing, Schema Evolution, and Federation

DGS at Scale: Testing, Schema Evolution, and Federation

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.

  • GraphQL
  • Netflix DGS
  • Testing
  • Federation
  • Java
Read more arrow_forward
Virtual Threads Did Not Kill WebFlux

Virtual Threads Did Not Kill WebFlux

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.

  • Java
  • Virtual Threads
  • Spring WebFlux
  • Project Reactor
  • Spring Boot
Read more arrow_forward
Securing Your GraphQL API with Netflix DGS

Securing Your GraphQL API with Netflix DGS

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.

  • GraphQL
  • Netflix DGS
  • Spring Security
  • Java
  • API Security
Read more arrow_forward
Testing Axon 5 Aggregates with Spock: A Practical Guide

Testing Axon 5 Aggregates with Spock: A Practical Guide

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.

  • Axon Framework
  • CQRS
  • Event Sourcing
  • Spock
  • Testing
  • Java
Read more arrow_forward
Solving N+1 with Data Loaders and Field Resolvers

Solving N+1 with Data Loaders and Field Resolvers

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.

  • GraphQL
  • Netflix DGS
  • Spring Boot
  • Java
  • Performance
Read more arrow_forward
Schema-First GraphQL with Netflix DGS

Schema-First GraphQL with Netflix DGS

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.

  • GraphQL
  • Netflix DGS
  • Spring Boot
  • Java
  • API Design
Read more arrow_forward
The Silent Metadata Gap: Why Your Axon 5 Events Have No User Attribution

The Silent Metadata Gap: Why Your Axon 5 Events Have No User Attribution

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.

  • Axon Framework
  • CQRS
  • Event Sourcing
  • Spring Boot
  • Java
Read more arrow_forward
Your MCP Server Works Locally. Then Kubernetes Kills the Session.

Your MCP Server Works Locally. Then Kubernetes Kills the Session.

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.

  • MCP
  • Kubernetes
  • Spring AI
  • GKE
  • Java
Read more arrow_forward
Propagating User Identity in Axon 5 Query Handlers

Propagating User Identity in Axon 5 Query Handlers

Why ReactiveSecurityContextHolder is always empty inside Axon query handlers, three approaches we considered, and the Axon MetaData solution that keeps query objects clean.

  • Axon Framework
  • CQRS
  • Spring WebFlux
  • Spring Security
  • Java
Read more arrow_forward
Migrating from Axon Framework 4 to 5: What We Learned

Migrating from Axon Framework 4 to 5: What We Learned

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.

  • Axon Framework
  • CQRS
  • Event Sourcing
  • Spring Boot
  • Java
Read more arrow_forward