Sign in

Oliver Drotbohm

@odrotbohm.de
1.4K followers 144 following 395 posts

Frameworks & Architecture in the Spring open source engineering team, all things Spring, Java, data, DDD, REST, software architecture, drums & music. He/him.

PostsRepliesMedia
Oliver Drotbohm @odrotbohm.de · 28/09/2026
I don’t know why but when I hear “human in the loop” what I immediately think of is this…
A man with a noose around his neck stands on a gallows, smirking, while another person is seen behind him. Text on the image reads, “First time?”.
052
Oliver Drotbohm @odrotbohm.de · 26/09/2026
The office for tonight… #paulapeterssenband
A Yamaha drum set on a stage with a red carpet.
030
Oliver Drotbohm @odrotbohm.de · 26/08/2026
New PB today at 1:37.97. Thanks to our instructor Oli Rodig (www.instagram.com/kartoli_r – two fast Ollies on the track!) who helped us finding the extra tenths. And for the picture, too! 🙂 #spreewaldring
An overhead view of a race car driver seated in a single-seater vehicle. The driver is wearing a blue helmet with an orange stripe and is secured with red harnesses. They are holding a steering wheel with a logo, and the cockpit features a racing wheel and gloves.
020
Oliver Drotbohm @odrotbohm.de · 26/08/2026
Track day! #spreewaldring
A close-up of a racing helmet resting on a black racing car, with the words "FORMEL-RENNWAGEN" visible. The background includes a racetrack and advertising banners, under a cloudy
020
Oliver Drotbohm @odrotbohm.de · 16/08/2026
Liked the clean look of the beauty during tonight’s gig preparation earlier today… #yamahadrums
A natural wood 3-piece drum, set up on a decorative rug in a minimalist room with plain walls and concrete flooring.
020
Oliver Drotbohm @odrotbohm.de · 11/08/2026
The office for this afternoon… #sachsenring
Image of a racing car with a checkered pattern and number 1 parked on a racetrack. Other cars are visible in the background, along with spectators. The sky is clear and blue.A close-up of the interior of a race car, showing the steering wheel and dashboard. In the background, a racetrack and a control tower are visible under a clear blue sky.
120
Oliver Drotbohm @odrotbohm.de · 08/08/2026
Did you know that in Dresden, a public square is named after a common Java artifact packaging approach? 🤔😬
A screenshot of Apple Maps centered around Fetscherplatz in Dresden, Germany.
110
Oliver Drotbohm @odrotbohm.de · 17/07/2026
Look at this old fella. And Jacques Villeneuve. 🤩😬 #formula1 #spagrandprix
Me and Jacques Villeneuve are standing together in an indoor setting, smiling at the camera. Me wearing a black Nike cap and a dark shirt, while he is dressed in a checked shirt over a t-shirt. Background features indoor plants and an emergency exit sign.
030
Oliver Drotbohm @odrotbohm.de · 01/07/2026
An evening with Dave Grohl… #FooFighters
A large crowd gathers in Olympiastadion Berlin for a concert by the Foo Fighters, with a stage prominently featuring lights and equipment. The image captures the audience, many of whom are holding their phones, generating a sea of lights.
070
Oliver Drotbohm @odrotbohm.de · 24/05/2026
Sunday noodling… #funky
030
Oliver Drotbohm @odrotbohm.de · 21/05/2026
The office for this morning… #codecrafts2026
A large audience seated in a conference hall, facing a stage with a presenter under colorful lighting. Screens display "<CODE CRAFTS> 2026" alongside logos of various sponsors. The space features modern decor, with a vibrant purple hue enhancing the mood.
140
Oliver Drotbohm @odrotbohm.de · 21/05/2026
Isch over… #microservices
A store front of a closed down shop titled “Microservice GmbH Computer Verkauf”.
260
Oliver Drotbohm @odrotbohm.de · 11/05/2026
I‘m glad that the fiber to the home installation is just yet another IT project…
A group of workers is gathered in a residential area, one of them is digging in the ground while others observe. They are dressed in various work attire, including reflective jackets and hooded sweatshirts. One of them is looking at his mobile phone.
150
Oliver Drotbohm @odrotbohm.de · 20/04/2026
I can hardly imagine anyone but @ddoutsiopoulos.bsky.social to so perfectly capture the mood of a conference like Spring I/O. It's been the best one yet! Thank you, @sergialmar.com, and see you all in Valencia! 👋🍃📦 #SpringIO26
A person is standing behind a podium with digital screens and colorful graphics, illuminated by blue stage lights. The design includes the words "SPRING" and "2026," suggesting a tech or gaming event.A large audience is seated in a conference hall, attentively watching a speaker on stage. A large screen displays information related to "Observability," with decorative lighting creating a vibrant atmosphere.A speaker gestures while presenting on stage, with a large purple screen behind displaying green slides. The speaker wears a black shirt and a black cap.A man with a short beard, wearing a cap and glasses, sits on a tufted couch while looking at his phone. The image is in black and white, with others blurred in the background.
141
Oliver Drotbohm @odrotbohm.de · 19/04/2026
@deutschebahn.com Kleine Diskrepanz zwischen Werbung (links) und Realität (rechts). Gebucht wird ein RJ. Steht vermutlich im Kleingedruckten. Kann man dann aber auch größer drucken. Ist ja immerhin auch Fernverkehr.
Werbung für die BahnCard 25 der Deutschen Bahn. Angepriesen werden 25 % Rabatt auf Preise des Fernverkehrs für Sparangebote.Angebot für eine Fahrt mit eben dieser Bahncard, jedoch nur mit 5 % Rabatt.
010
Oliver Drotbohm @odrotbohm.de · 16/04/2026
Winding down Spring I/O in style… #springio26
The image features a panoramic view of the Bacelona skyline at sunset, with buildings and a mountainous background. The text "MAYMANTA ORIGEN PERÚ" is prominently displayed in the center.
020
Oliver Drotbohm @odrotbohm.de · 13/04/2026
Current Spring I/O keynote preparation status… #SpringIO
A Calvin & Hobbes comic strip.
Hobbes: “Do you have an idea for your story yet?“
Calvin: “No, I’m waiting for inspiration. You can’t just turn on creativity like a faucet. You have to be in the right mood.”
Hobbes: “What mood is that?”
Calvin: “Last-minute panic.”
1121
Oliver Drotbohm @odrotbohm.de · 12/04/2026
Boarding DRS to FRA to BCN for Spring I/O 2026. Safe travels everyone! Looking forward to see you! 🍃📦🛫 #SpringIO
An airplane is parked at an airport gate, connected to a jet bridge. Ground crew in high-visibility vests are working nearby. In the background, airport buildings and a control tower are visible under a cloudy sky.
070
Oliver Drotbohm @odrotbohm.de · 18/02/2026
Also coming in Spring Modulith 2.1 M2: support to run application module tests in combination with Boot's slice test feature. 🍃📦 docs.spring.io/spring-modul...
An explanation of how to combine Spring Modulith’s application integration testing capabilities with Spring Boot’s horizontal slice tests.
063
Oliver Drotbohm @odrotbohm.de · 18/02/2026
Event externalization through an outbox coming to Spring Modulith 2.1 M2 via Namastack Outbox. 🍃📦 #SpringModulith #Namastack docs.spring.io/spring-modul...
An instructional document about Namastack Outbox support, detailing how to activate advanced outbox features. It includes a code snippet for declaring the Spring Modulith Namastack starter and instructions for configuring event externalization.
072
Oliver Drotbohm @odrotbohm.de · 12/02/2026
„OpenAPI solved the discovery problem for REST“
230
Oliver Drotbohm @odrotbohm.de · 05/02/2026
What a great turnout for yesterday's JUG Switzerland meetup on domain-centric architectures and their pros and cons. I was happy to see so many new and familiar faces. Up today: a workshop on tactical Domain-Driven Design at Voxxed Days Ticino in Lugano. 🍃📦☕️⚗️ #jugch #vdt26
A large audience is seated in a tiered lecture hall, attentively listening to a speaker presenting on a screen that displays the title „Domain-centric? Why Hexagonal And Onion Architecture Are Answers to The Wrong Question – And What To Ask Instead?" The room features wooden walls and a modern design.A modern auditorium with wooden paneling, featuring sloped seating and a blank projection screen at the front. A podium is visible on the stage area. The atmosphere is professional and suited for presentations or lectures.A presentation is taking place in a large auditorium with wooden paneling. A speaker is gesturing towards a projected graph illustrating project complexity over time, while an audience of approximately 100 people, mostly men, attentively listens.A speaker is presenting in a wooden-paneled auditorium. The individual is gesturing while holding a pen, and a laptop is visible on the table in front of them. A blank screen is displayed behind the speaker.
030
Oliver Drotbohm @odrotbohm.de · 04/02/2026
Boarding DRS to MUC to ZRH for JUG Swiss and Voxxed Days Ticino… 🛫🍃📦☕️⚗️ #jugch #vdt26
A Lufthansa aircraft is parked at Dresden airport, surrounded by ground crew and luggage carts. The scene is in black and white, depicting a rainy or overcast day with a wet runway.
000
Oliver Drotbohm @odrotbohm.de · 22/01/2026
I'm so glad #GitHub finally moved to a <div /> soup to make what's previously been a boring-looking <table />, much more “dynamic.” 🙄
A screenshot of a "table" of GitHub action runs that is implemented using div blocks and thus doesn't properly align.
271
Oliver Drotbohm @odrotbohm.de · 21/01/2026
The former’s be more something like that:
100
Oliver Drotbohm @odrotbohm.de · 13/11/2025
We've tweaked the way #SpringModulith's #Flyway support customizes the application-module-aware migrations. Now fully isolated, migration history per module. Please give it a spin before our GA release next week! 🍃📦 docs.spring.io/spring-modul...
Application-Module Aware Flyway Migrations
As of Spring Modulith 2.0, we support the execution of module-specific Flyway migrations. Application modules are encouraged to define migrations for their own persistent data only, which means that these migrations have to be executed in the order of the module dependency tree.

Assume a default Flyway setup with migrations located in classpath:db/migration, two application modules first and second (with second depending on first), and an activated spring.modulith.runtime.flyway-enabled configuration property.

With that in place we will customize the Flyway setup as follows:

The root migration folder will be changed to db/migration/__root. For that, the default version tracking table will be used.

Additional migrations for db/migration/$moduleIdentifier will be registered with a tracking table of flyway_schema_history_$moduleIdentifier. These migrations are also set up to a baseline version of 0 and set up to baseline on migrate.

Migration locations ending in a wildcard will not be customized.

Note, that he version numbers used in migration scripts are now effectively scoped to the application module and should not use global ordering.

By selecting which folder to place the migration files in, you can differentiate migrations always to be run from ones that will only get executed for the corresponding module. The application module test integration will only execute the default migration and the ones for modules included in the test run.
071
Oliver Drotbohm @odrotbohm.de · 19/10/2025
A night to remember with Phil Siemers… 🫶 #waswenndoch #schonheute
010
Oliver Drotbohm @odrotbohm.de · 17/10/2025
Gotta love i18n’ed error messages: „Die Datenbank-Verbindung wurde nicht explizit geschlossen (jetzt in der Müllabfuhr)“ 😅 #java #garbagecollection
A screenshot of a Java exception using an internationalized exception message translating "The connection was not closed by the application and is garbage collected" to "Die Datenbank-Verbindung wurde nicht explizit geschlossen (jetzt in der Müllabfuhr)".
1102
Oliver Drotbohm @odrotbohm.de · 14/10/2025
Application-module-aware #Flyway migrations have just landed in #SpringModulith! Check out the reference docs for details. docs.spring.io/spring-modul... 🍃📦
Application-Module-Aware Flyway Migrations

As of Spring Modulith 2.0, we support the execution of module-specific Flyway migrations. Application modules are encouraged to define migrations for their own persistent data only, which means that these migrations have to be executed in the order of the module dependency tree.

Assume a default Flyway setup with migrations located in classpath:db/migration, two application modules first and second (with second depending on first), and an activated spring.modulith.runtime.flyway-enabled configuration property. With that in place we will augment the configured migration to run the default one first, followed by one for classpath:db/migration/first and one for classpath:db/migration/second.

By selecting which folder to place the migration files in, you can differentiate migrations always to be run from ones that will only get executed for the corresponding module. The application module test integration will only execute the default migration and the ones for modules included in the test run.

We will not augment migration runs including wildcard expressions in the migration location definition.
041
Oliver Drotbohm @odrotbohm.de · 10/10/2025
Waving #Devoxx goodbye after a tremendous week. @stephanjanssen.be and team have outperformed themselves again. Being able to catch up with team members has been energizing as well! Safe travels, everyone, and hope to see you next year! 📷 by the amazing @ddoutsiopoulos.bsky.social
Oliver Drotbohm standing on a stage, raising one hand while addressing an audience. In the background, a projector displays text related to evolvable systems. The speaker is wearing a black cap and glasses.
0101
Oliver Drotbohm @odrotbohm.de · 06/10/2025
BRU ❤️ Java… #Devoxx
A coffee house entrance with a green awning displaying "JAVA coffee house."
0131
Oliver Drotbohm @odrotbohm.de · 06/10/2025
Boarding DRS to MUC to BRU for #Devoxx… 🛫☕️🍃
A CRJ9 parked at the gate at Airport Dresden, surrounded by trucks delivering fuel and baggage.
130
Oliver Drotbohm @odrotbohm.de · 04/10/2025
Thu, Oct 9th, 5:40pm – Meet the Spring Team – m.devoxx.com/events/dvbe2... With @starbuxman.joshlong.com, @garnier.wf, @tzolov.bsky.social, @0.5ritter.de, @snicoll.be, @chemicl.bsky.social, Brian Clozel, and yours truly. ☕️🍃 5/5
Meet the Spring Team

Come meet the Spring team! This year at Devoxx, many maintainers, advocates and contributors will be at the conference, and we’re delighted to meet with our users and members of the community. In this “open mic” session, you’ll have the opportunity to ask us anything about the various Spring projects, our current efforts and ideas for the future, and of course, the soon-to-be-released new generation with Boot 4 and Framework 7.

Whether you’re a Spring veteran or a new user getting started with the project, you are more than welcome to join.
0126
Oliver Drotbohm @odrotbohm.de · 04/10/2025
Thu, Oct 9th, 4:30pm – Domain-centric? Why Hexagonal and Onion Architecture are Answers to the Wrong Question – m.devoxx.com/events/dvbe2... #DDD 4/5
Domain-centric? Why Hexagonal and Onion Architecture are Answers to the Wrong Question

To separate technical from domain code, architectural approaches like Hexagonal or Onion Architecture are currently all the rage. However, discussions about their semantic details and their mapping to the source code structure of software projects are at least equally ubiquitous.

How much abstraction and mapping between architectural concepts is needed? Is persistence metadata in the domain model heresy? Above all: what is the actual goal of the exercise, and: does it have to be so complicated?

We address these and other questions in a theoretical overview and by looking at concrete examples. We discuss the trade-offs of different approaches and how various tools and libraries help us to maintain the intended structural integrity.
110
Oliver Drotbohm @odrotbohm.de · 04/10/2025
Thu, Oct 9th, 1:50pm – What's new in #SpringModulith? - m.devoxx.com/events/dvbe2... 🍃📦 3/5
What’s new in Spring Modulith?

This talk introduces Spring Modulith, a tool for structuring maintainable Spring applications, and reviews its latest features, with a focus on the upcoming 2.0 release. Key enhancements include a new event publication registry, advanced C4 model integration, and major improvements in observability and actuator support.
110
Oliver Drotbohm @odrotbohm.de · 04/10/2025
Tue, Oct 7th, 1:30pm – Tactical Domain-Driven Design with #Java and #Spring – m.devoxx.com/events/dvbe2... #DDD ☕️⚗️🍃📦2/5
Tactical Domain-Driven Design with Java and Spring

This workshop explores tools and approaches for implementing tactical Domain-Driven Design (DDD) in Java, focusing on the jMolecules library for expressing DDD concepts and the Spring Modulith project for modular Spring Boot applications, including support for integration, events, testing, and documentation of rich domain models.
142
Oliver Drotbohm @odrotbohm.de · 04/10/2025
As I am polishing slides for next week's #Devoxx, I found this slide being the common opener for all of my presentations recently. If you're interested in the topic of maintainable software with #Java and #Spring, make sure to check out the sessions below… ☕️🍃🧵 1/5
A chart showing the complexity of software projects (y-axis) in relation to versions released, continuously growing as development moves through the versions. A marker points to the area before the 1.0 release, stating “Most teams focus on that.” Another marker pointing at the much larger area covering four more versions, stating “…while the challenge is actually this.”
1123
Oliver Drotbohm @odrotbohm.de · 02/10/2025
📢 Another update for the Logical Structure view in #VSCode's Spring Boot Tools. The application node now reveals a customization icon to select the stereotype groups that should be considered. Switch to the pre-release version to play with it. ☕️⚗️ #jMolecules
The Logical Structure view in VSCode's Spring Boot Tooling showing the Spring Modulith application modules of the RESTBucks application. The application node reveals an icon to open up a dialogue to select the stereotype groups that are supposed to be included in the project tree.A screenshot of the stereotype group selection view.
031
Oliver Drotbohm @odrotbohm.de · 26/09/2025
Lovely how @dirkmahler.bsky.social showcases rule validation of architecture that is against an intended architecture using #jMolecules for the former and #ContextMapper for the latter. #jsd2025 ☕️⚗️
A presentation slide titled "APPLICATION STRUCTURE" discusses jQAssistant rules that validate against abstract concepts, such as Bounded Context and Technical Aspects. It illustrates relationships between concepts like "Implemented Bounded Context," "Documented Bounded Context," the former bound to jMolecules annotations and the latter described by Context Mapper.
011
Oliver Drotbohm @odrotbohm.de · 16/09/2025
Code comments… #JavaForumNord
Coke bottles in a refrigerator. The main one with a “Mate” label.
020
Oliver Drotbohm @odrotbohm.de · 12/09/2025
Weekend literature…
The cover of the book “Structured Design” by Edward Yourdon and Larry L. Constantine from 1979.
020
Oliver Drotbohm @odrotbohm.de · 04/09/2025
The #STS team is on 🔥! Sneak preview for the #SpringModulith application module information incorporated in the logical structure view in #VSCode. ⚗️🍃📦
Screenshot of a VSCode Logical Structure project explorer that shows a Spring Modulith project's types arranged by application module, whether they're exposed to other modules or internal, followed by the assignment to concepts of Hexagonal Architecture and grouped design and technology stereotypes like DDD, Spring, Jackson, and JPA.
121
Oliver Drotbohm @odrotbohm.de · 03/09/2025
Update on the logical project view coming in #STS (flip your #SpringBoot tools to pre-release versions in #VSCode): - Alphabetic sorting of the stereotypes per level - Icons! (at least for some of them) 🔥 Up next: #SpringModulith groupings by application module. ⚗️🍃📦 #jMolecules #DDD #Spring
A refined variant of the logical structure view in VSCode displaying application structure based on architectural, design and technology stereotypes in a tree-like structure.
043
Oliver Drotbohm @odrotbohm.de · 29/08/2025
Double sneak preview! #jMolecules 2.0 is going to introduce a declarative stereotype concept for predefined ones (DDD, Spring) and custom ones declared in your projects. The #STS team has a prototype to turn that information into a project tree for higher-level project navigation. ☕️⚗️
An image displaying a tree structure of a software application, grouping various components by their architectural stereotype, such as Domain Event Handlers, Aggregate Roots, Services, Entities.
1135
Oliver Drotbohm @odrotbohm.de · 15/08/2025
Watching my good friend Björn Kerstan grooving percussion alongside Derrick McKenzie for Purple Disco Machine… #PurpleDiscoMachine #Chemnitz2025
A live music performance by Purple Disco Machine is taking place on stage, illuminated by colorful lights. In the background, a large screen displays a sunset with palm trees. The crowd is visible in front of the stage, enjoying the show.
020
Oliver Drotbohm @odrotbohm.de · 12/08/2025
The great thing about #GitHub's move to React, and thus being able to partially update the UI, is that you can construct inconsistencies you'd never get with a full-page refresh! *slowclap*
A screenshot extract of the GitHub issues overview after a ticket has been closed showing that the actual criteria is “open tickets”, but the just-closed ticket still appears in the list.
340
Oliver Drotbohm @odrotbohm.de · 09/08/2025
The office for this morning…
A Behringer Wing mixing console.
070
Oliver Drotbohm @odrotbohm.de · 05/08/2025
That's gonna be a busy #DevoxxBE… 🤩
Screenshot of an email inbox showing three talk proposals accepted for Devoxx Belgium.
0190
Oliver Drotbohm @odrotbohm.de · 28/07/2025
This is the way.
A street sign indicating the way to the Springweg car park in Utrecht.
1171
Oliver Drotbohm @odrotbohm.de · 28/07/2025
It haunts you in places you never would’ve expected.
A map displaying Lombok district of Utrecht.
0130