Architecture, Perf. & Sec.Architecture, Perf. & Sec.
Conference50min
INTERMEDIATE

All Models Are Wrong: Lessons from Real DDD Projects

This session shares practical lessons from years of designing and refactoring domain models. Through real examples, it explores how modeling choices affect flexibility, how to prevent business logic leakage and tight coupling, and how to keep domain models clean, adaptable, and focused on behaviour as requirements evolve.

talk.summaryAiDisclaimer

Vadim Prudnikov
Vadim PrudnikovTrainitek
talks.description
In software projects, domain models often become large, rigid, and difficult to evolve. Business logic leaks into controllers and services. Aggregates grow without boundaries. Relationships become tightly coupled. Tests focus on data instead of behaviour.

In this session, I’ll share lessons from years of designing and refactoring domain models in real systems, including the mistakes that led to overcomplicated and fragile designs.

Through practical code examples, we’ll examine how some small modeling decisions shape the long-term flexibility of a system, and what makes a domain model remain useful when requirements change.

I look forward to seeing you at my talk!
flexibility
modeling
domain
refactoring
talks.speakers
Vadim Prudnikov

Vadim Prudnikov

Trainitek

Norway

Hands-on Architect, IT Trainer, and Conference Speaker with 20+ years of experience, passionate about building high-quality software, mentoring developers, and sharing knowledge.
I've trained over 700 professionals in Architecture, DDD, EventStorming, and TDD, built and deployed more than 10 production-ready projects, led multiple development teams, and created a successful Java department from scratch. Along the way, I’ve mentored 20+ developers and conducted 100+ technical interviews.
My expertise lies in Java, but I also have experience with TypeScript, Groovy, and other programming languages. I believe that strong technical skills, continuous learning, teamwork, and knowledge-sharing are the keys to success in software development.