Michael Eder & Philipp Frauenthaler

Our journey with Spring Boot in a microservice architecture

The goal of microservices is deploying a service without changing anything else. Here are the practical lessons to finally achieve it.

Our journey with Spring Boot in a microservice architecture
#1about 3 minutes

Defining key architecture goals for a microservices system

The open-closed principle, fault tolerance, technology diversity, and independent deployment are essential goals for a robust architecture.

#2about 3 minutes

Understanding the core principles of microservice architecture

Microservices decompose the business and persistence layers into small, independent services, each with its own data store.

#3about 4 minutes

Avoiding tight coupling from shared code and dependencies

Sharing interfaces or using a common parent POM creates tight coupling that breaks independent development and builds.

#4about 3 minutes

Managing shared libraries and API versioning effectively

Common functionality should be outsourced to versioned shared libraries, and service APIs must be versioned to prevent breaking changes.

#5about 3 minutes

Designing a single entry point for data objects

Using multiple communication channels for the same data object complicates maintenance, so a single entry point simplifies logic and conversion.

#6about 5 minutes

Mitigating temporal coupling with robust backup strategies

Reduce the impact of service failures caused by temporal coupling by implementing backup strategies like default values or disabling features.

#7about 2 minutes

Improving performance and resilience with local caching

Implementing a local data cache, such as Google Guava, reduces synchronous calls to other services and improves system resilience.

#8about 2 minutes

Achieving fault tolerance through scaling and redundancy

Use platforms like Kubernetes with health checks to automatically scale and replace faulty instances of stateless services for high availability.

#9about 5 minutes

Decoupling services using asynchronous communication patterns

Asynchronous communication via a message broker increases availability and fault tolerance but requires careful handling of redelivery and monitoring.

#10about 27 minutes

Adopting an iterative mindset for architecture evolution

Building a microservice architecture is an ongoing, iterative process that requires continuous improvement and an open-minded team culture.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.