Victor Rentea
Trainer and Consultant
With 20 years of experience, Victor Rentea (@VictorRentea) is a Java Champion who dedicated his career to training and inspiring thousands of engineers in over 150 companies worldwide. Based on the lessons learned from the trenches, he gave many top-rated talks at conferences in Europe and online. You can meet Victor online at his monthly events for European Software Crafters, the world’s largest community on improving code quality.
Workshop topic:
Modular Monolith
Time & Date:
March 6th | 9am-5pm CET

About workshop
Decoupled modules deployed as a single unit, connected to a single database, on which independent teams can work side by side. This is the Modular Monolith Architecture, the ideal architecture for many projects today, and a mandatory transition phase for migrating a legacy codebase to microservices. By compiling the experience of many successful real-world projects, this training will equip you with the proper tools and techniques to successfully adopt this architecture style, aware of its core patterns and pitfalls: module encapsulation and integration strategies, data decoupling stages, transaction boundaries, event-based integration, and more.
Agenda
Introduction
- Definition of a Module
- Technical vs Functional Code Partitioning
- Finding Module Boundaries
Code Decoupling
- Module internal and external API
- How to enforce Module Boundaries
- Exercise: Call another module via its published internal API
Module Integration Patterns
- Dependency Inversion & Plugin Pattern
- Supporting Release Variability
- Event-based Integration
- Module Contract Segregation
- Aggregator/Orchestrator Module
- The Shared Module
- Micro-frontends for full-stack module teams
- Exercise: Refactor a module dependency cycle to several approaches above
🍽️ Lunch Break
Data Decoupling
- Stage #1: Single Writer per Table
- Database Refactoring Techniques (optional, for legacy schemas)
- Stage #2: Private Schemas
- Exercise: Join a foreign view in a Search
- Stage #3: Separate Consistency
- Exercise: Split Transactions with Async Calls or Events
Building and Testing
- From Packages to Build Modules (Maven/Gradle)
- Optimizing Release Cycle
- Exercise: Write a module-scoped test
From Modulith to Microservices
- Weaknesses of Modular Monolith
- When/How to extract a module to a Microservice
- Architectural Quantum: Options between Monolith and Microservices
Side Topics usually covered along the way:
- How to migrate from a legacy monolith
- Is a "Module" a Build Unit?
- Module size & scope?
- Release cycle in a Modulith
- Shared or Separate Transactions
* If you're interested in this program, please contact us at info@itkonekt.com to find out more about availability and prices.