Victor Rentea

Java Champion, ex Lead Architect @IBM
Victor (@VictorRentea) is a Java Champion, and one of the top Technical Trainers, having trained a few thousand developers in dozens of companies worldwide.
Victor’s talks are regularly top-rated at the largest international conferences in Europe: his live-coding sessions are lightning-fast but well crafted, full of enthusiasm, deep insights and take-away tips. His passion is Simple Design, Refactoring, and Unit Testing, about which he regularly talks at top conferences. His personal commitment is to seed passion for writing clean, professional code.

Workshop topic:
Clean, Pragmatic Architecture

Time & Date:
November 17th | 9am-5pm CET

About workshop

This online workshop is a pragmatic review of the most common architectural decisions of a backend system, including Layered Architecture, agnostic Domain, decoupled subdomains, data mappers, and validation. For deep understanding, most concepts are demonstrated in Java code, uncovering a series of implementation tricks that you can immediately apply to your project. The last section overviews practical strategies that you can use to gradually decouple a monolithic system into independent subdomains. The lack of a clear structure can slow us down and put the project in danger, but over-engineering can also generate remarkable waste of time, money, and brainpower. To help you find the amount of “just-enough design”, this workshop adopts a pragmatic point of view and then introduces techniques to gradually evolve the design to match the growing functional complexity.


    (Welcome: logistics, debrief & rules of the house – 10 minutes)
  • Control your core data structures – 1 hour
      » Data Transfer Objects, seen as enemies
      » Isolating your Domain: why, when, and how
      » Adapter Pattern
      » The fallacy of auto-mappers
      » Dependency Inversion Principle (at package and module level)
    (break 10 minutes)
  • Break down logic in Layers (horizontally) – 1 hour
      » Layered Architecture and variants
      » Facade Pattern and Separation by Layers of Abstraction
      » Enriching Entities with behavior and constraints
      » Keeping Domain Services cohesive
    (break 10 minutes)
  • Enriching the Domain Model - 1 hour
      » Data Validation Strategies
      » Feature Envy code smell
      » What logic [not] to push in Entities
  • Break logic in Subdomains (vertically) - 1 hour
    (lunch break 1 hour)
  • The Onion Architecture – 1 hour
      » Fundamental rules
      » Debate: unified Domain/Persistence model (pragmatic variation)
      » Debate: selecting DTOs with ORM (pragmatic variation)
      » Enforcing rules
    (break 10 minutes)
  • Breaking the Monolith: the safe parts – 1 hour
      » The history of a successful monolith
      » Replace direct cross-subdomain calls with API calls and domain events
      » (ORM) Replace entity links with numeric columns
      » Introduce (redundant) projections
    (break 10 minutes)
  • Breaking the Monolith: cutting the links (overview) – 30 minutes
      » Decoupling via orchestration or choreography
      » Facing Eventual Consistency by cutting Foreign Keys, Distributing Transactions, and Replicating
  • Wrap-up – 30 minutes
      » Review of the key take-aways
      » The clash between Single Responsibility Principle (SRP) and Don’t Repeat Yourself (DRY)
      » More debates / Q&A

You can download the full program for this workshop at the following LINK.

* If you're interested in this program, please contact us at to find out more about availability and prices.