Basic concepts of Domain Driven Design

  • Business logic can be expressed in If- else and loops. That’s it
  • Business rules are the hearth of software development
  • Domain could be divided into 3 sub-categories
  • One bounded context : One subdomain
  • One bounded context : Several subdomains
Bounded Context
Value stream and bounded-context
  • Shared context
  • Customer-supplier
  • Conformist
  • Anti corruption layer
  • Open host service
Shared context representation in Kanban board
Value stream from one bounded-contect to another bounded context
Filtering mechanism as a anti-corruption layer
OHS representation
  • Aggregates
  • Value objects
  • Domain events
  • Domain services
  • Customer (aggregate)
    → Address (value object)
    → Status (value object)
    → Account (entity)
    → → Private accounts (entity)
    → → Public accounts (entity)
  • If customer come to the system first time : NEW_LEAD
  • If customer go from the system without a payment : CLOSED
  • If customer go to silent mode then we need to follow up : FELLOW_UP
  • If customer buy from us then we are successful : CONVERTED
  • If customer is in the system but waiting : WAITING
States and the flow




Business Agility lover, TDD guy, clean coder, non-stop learner.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Personal Productive Canvas: how to join Windows and Mac?

What I done did in January 2022

GSOC’20 Week 6–7 Update

Woocommerce Split Order 1.5.1 [Latest Update & Pre-Licensed]

Ignore properties —  C#

Developers as your customer (or how I learned to stop worrying and love the feedback loop)

gradle scripts for Kotlin lovers

Anonymous inner class vs Lambda Expression

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Business Agility lover, TDD guy, clean coder, non-stop learner.

More from Medium

Building Microservices (Part 2)

Decomposing monolith into microservices

SAGA Distributed Transaction Pattern in Microservices

CQRS with Event Sourcing