Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn

Callista medarbetare Magnus Larsson

In Development: The 5th Edition of Microservices with Spring Boot 4

// Magnus Larsson

I’m happy to share that development of the 5th edition of my book is in progress. This will be a major update, covering not only new features in Spring Boot 4 but also improvements in end-to-end testing, OAuth security, Docker, Kubernetes, Istio, Kafka, OpenTelemetry tracing, and log ingestion.

Here is a short summary; more details will come in future blog posts as the book develops.

As with previous editions, the book is based on a small landscape of cooperating microservices. Each chapter adds new capabilities until the book ends with a production-ready microservice landscape.

The book will use Java 25, Spring Boot 4.1.1, and Spring Cloud 2025.1.3.

Note: These releases included dozens of fixes for CVEs as published on August 20 at https://spring.io/security.

Below are two lists of new features that I plan to add to the book; the first relates to Spring Boot 4, the next to other improvements.

  • New fine-grained dependencies
    Provide more control over the application footprint by utilizing Spring Boot 4’s new modularization concept.

  • Null-safe applications
    Prevent runtime NullPointerExceptions through comprehensive compile-time checks.

  • API Versioning
    Simplify server- and client-side versioning by expressing API versions through path segments, query parameters, request headers, or media types.

  • HTTP Service Interface Clients
    Reduce boilerplate code by letting Spring proxy RestClient or WebClient communication via standard Java interfaces.

  • Improved support for OpenTelemetry
    Minimize tracing setup overhead by using the spring-boot-starter-opentelemetry dependency for near-zero-configuration tracing.

  • CNCF Buildpacks replacing Dockerfiles
    Reduce maintenance overhead and ensure production-ready, future-proof container images by leveraging standard Buildpacks.

  • Java 25 AOT Cache for faster startup
    Improve application startup times through straightforward Buildpack configuration of the AOT Cache, reducing the setup overhead compared to GraalVM.

  • Karate replaces Bash-based end-to-end test script
    Improve test reliability and maintainability by replacing complex Bash scripts with the Karate open-source testing framework.

  • Using PKCE with OAuth Code Grant flows
    Enhance security for public clients, such as SPA web applications or native mobile apps, by implementing the Proof Key for Code Exchange (PKCE) standard.

  • Keycloak replaces Auth0 as external OAuth Authorization server
    Simplify external authorization server demos by replacing manual Auth0 configuration with a Keycloak server that can be configured and started with a single command.

  • Kubernetes Gateway API replaces Kubernetes Ingress
    Modernize cluster traffic management by adopting Envoy Gateway to replace the retired Ingress NGINX controller.

  • Kubernetes Gateway API replaces the Istio Gateway
    Standardize mesh architecture by replacing Istio-specific gateways with Istio’s implementation of the Kubernetes Gateway API, demonstrating how a unified API simplifies the introduction of a service mesh.

  • Introduce Istio Ambient Mode
    Reduce resource consumption and architectural complexity by running the service mesh without requiring sidecars in every microservice instance.

  • Fluent Bit replaces FluentD
    Simplify log ingestion and natively capture multi-line log records, such as Java stack traces, out of the box.

  • Jaeger replaces Zipkin
    Streamline OpenTelemetry-compliant tracing by removing the need for a separate OpenTelemetry Collector to rewrite trace formats.

  • Updated to Kafka 4 to get rid of ZooKeeper
    Simplify the messaging infrastructure and overall system landscape by adopting Kafka 4’s standalone mode.

No release date has been set yet, but I hope to complete my work before the end of the year. Stay tuned!

Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer