AIO-1051 How to break an 18 yo monolith | Devoxx

Devoxx Poland 2019
from Monday 24 June to Wednesday 26 June 2019.

   How to break an 18 yo monolith


Intermediate level
Room 2 Tuesday from 14:30 til 15:20 launched in 2000 and started growing constantly: More features, more people, more and more lines of code. More than 50 developers in 6 teams worked on the same code base.

The Software

The software was designed as a Swiss Army knife for our company needs. At the end we've got a big monolith that is hard to maintain. Over the last years we had several approaches to extract some parts to reduce complexity. But very central parts, business functionality and the data model were never touched. The approach is centralized with a single database.

The tech stack used is up-to-date, we have Java 11 with Spring Boot 2 and daily deployments.

The Decision

In 2018 we made a decision: remove the single, central database and create self-contained systems. Our main goals were:

  • create independent and lightweight services
  • have continuous deployments
  • one service - one team
  • teams are responsible for "their" services, from development to operations


  • What were our steps? How did we achieve our goals?
  • What technologies did we use?
  • What kind of cultural changes did we have?
refactoring   Event-Driven Microservices   product teams   Continuous Integration  
Subscribe to Devoxx on YouTube
Andreas Bräu
Andreas Bräu
From idealo internet GmbH

I studied computer science in Jena, specialized to databases and information systems. During my studies I started working at the University Hospital Jena at the Service Management Department with a focus on hardware rollouts and software deployments. 6 years ago I got back to software development. These days I'm developing services with Spring Boot, messaging systems and a lot of DevOps tasks.

I'm also active member of the community. Here I maintain websites and services. I'm a developer of tools that help local communities to grow and connect to other communities.

Make sure to download the Android or iOS mobile schedule.