{}
Domain
Controller
Persistence
Adapter
Adapter
SPI
API
Adapter
Adapter
Alistair Cockburn's pattern
SPI
API
Controller
Persistence
Domain
{}
Domain
Controller
Persistence
Adapter
Adapter
SPI
API
{}
Engine
Time Circuit
Tank
TimeStamp
Fuel
Liter
Miles
Per Hour
Time Jump
Nuclear Reactor
Delorean
Plutonium Pellet
Flux Capacitor
GigaWatt
DeLorean
Time Circuit
Flux Capacitor
Flux Capacitor
Time Circuit
Nuclear Reactor
DeLorean
Flux Capacitor
Plutonium Pellet
Nuclear reactor
GigaWatt
Plutonium Chamber
Nuclear Reactor
Engine
Tank
Miles
Per
Hour
Fuel
Liter
Time Jump
Flux Capacitor
TimeStamp
Time Circuit
Time Circuit
Time Circuit
Flux Capacitor
Flux Capacitor
DeLorean
Nuclear Reactor
Flux Capacitor
Time Circuit
Flux Capacitor
Flux Capacitor
Nuclear Reactor
Time Circuit
Time Jump
Engine
Miles
Per
Hour
Fuel
Liter
Flux Capacitor
Tank
Plutonium Chamber
Plutonium Pellet
Nuclear reactor
GigaWatt
Time Circuit
TimeStamp
DeLorean
Flux Capacitor
Plutonium Pellet
Nuclear reactor
GigaWatt
Plutonium Chamber
Nuclear Reactor
Engine
Tank
Miles
Per
Hour
Fuel
Liter
Time Jump
Flux Capacitor
TimeStamp
Time Circuit
Time Circuit
Time Circuit
Flux Capacitor
Flux Capacitor
Nuclear Reactor
Time Circuit
Time Jump
Engine
Miles
Per
Hour
Fuel
Liter
Flux Capacitor
Tank
Plutonium Chamber
Plutonium Pellet
Nuclear reactor
GigaWatt
Time Circuit
TimeStamp
Plutonium Chamber
Plutonium Pellet
Nuclear reactor
GigaWatt
Time Jump
Engine
Miles
Per
Hour
Fuel
Liter
Flux Capacitor
Tank
Time Circuit
TimeStamp
Controller
persistence
DB
DeLorean
persistence
Controller
DB
DeLorean
Nuclear
Reactor
persistence
Controller
DB
DeLorean
Nuclear
Reactor
persistence
Controller
persistence
DB
DeLorean
Nuclear
Reactor
Controller
persistence
Controller
persistence
DB
DeLorean
Nuclear
Reactor
Controller
persistence
Controller
DB
DB
DB
DeLorean
Nuclear
Reactor
Controller
persistence
persistence
Controller
DB
SPI
Nuclear
Reactor
REST
API
DB
SPI
Delorean
REST
API
SPI
REST
Client
API
SPI
Inspired by Alistair Cockburn's pattern
Port
Adapter
Client
REST
INPROC
DB
SPI
Nuclear
Reactor
REST
API
DB
SPI
Delorean
REST
API
SPI
DB
SPI
Nuclear
Reactor
REST
API
DB
SPI
Delorean
SPI
API
INPROC
INPROC (infrastructure)
SPI
API
GigaWatts
M Horse
Power
GigaWatts
NuclearReactorAdapter
(impl)
GeneratePower
Domain
Domain
Delorean
Nuclear Reactor
M Horse
Power
NuclearReactor
Fuel
Liter
Flux Capacitor
Tank
Engine
Miles
Per
Hour
Time Jump
Time Circuit
Time
Stamp
Plutonium Chamber
GigaWatt
Nuclear reactor
Plutonium Pellet
DeLorean
Time Circuit
Nuclear Reactor
Nuclear Reactor
DeLorean
Flux Capacitor
Time Circuit
Plutonium Chamber
Plutonium Pellet
Nuclear reactor
GigaWatt
Time
Stamp
Time Circuit
Engine
Miles
Per
Hour
Tank
Fuel
Liter
Time Jump
Flux Capacitor
Nuclear Reactor
DeLorean
Flux Capacitor
Time Circuit
Engine
Tank
Miles
Per
Hour
Fuel
Liter
Flux Capacitor
Time Jump
Plutonium Chamber
Plutonium Pellet
Nuclear reactor
GigaWatt
Time
Stamp
Time Circuit
DeLorean
Flux Capacitor
Plutonium Pellet
Nuclear reactor
GigaWatt
Plutonium Chamber
Nuclear Reactor
Engine
Tank
Miles
Per
Hour
Fuel
Liter
Time Jump
Flux Capacitor
TimeStamp
Time Circuit
Time Circuit
Flux Capacitor
Time Circuit
Nuclear
Reactor
DeLorean
Time
Circuit
Flux
Capacitor
?
?
?
?
50%
25%
75%
Nuclear
Reactor
DeLorean
Time
Circuit
Flux
Capacitor
50%
25%
75%
Nuclear
Reactor
DeLorean
Flux
Capacitor
Time
Circuit
ACL
SPI
DB
SPI
INPROC
REST
API
delorean
DB
SPI
nuclear
reactor
API
ACL
SPI
DB
SPI
INPROC
REST
API
delorean
API
DB
SPI
REST
nuclear
reactor
ACL
SPI
DB
SPI
INPROC
REST
API
delorean
API
DB
SPI
REST
nuclear
reactor
ACL
SPI
DB
SPI
CLIENT
REST
API
delorean
API
DB
SPI
REST
nuclear
reactor
API
DB
SPI
REST
ACL
SPI
DB
SPI
CLIENT
REST
API
delorean
nuclear
reactor
µ
nuclear reactor
µ
delorean
HTTP
DeLorean
Flux Capacitor
Time Circuit
Nuclear Reactor
DeLorean
Flux Capacitor
Time Circuit
Nuclear Reactor
Production code
TESTS
stubs
stubs
stubs
Controller
API
Nuclear
Reactor
SPI
persistence
DB
persistence
Controller
DB
SPI
API
DeLorean
Controller
API
Nuclear
Reactor
SPI
persistence
DB
API
persistence
Controller
DB
SPI
API
DeLorean
InPROC
SPI
InPROC
SPI
persistence
Controller
DB
SPI
API
DeLorean
API
Controller
API
Nuclear
Reactor
SPI
persistence
DB
Controller
Persistence
Service
Controller
Persistence
Service
{}
{}
{}
Controller
Persistence
Service
{}
{}
{}
{}
{}
Controller
Persistence
Service
{}
{}
{}
{}
{}
Controller
Persistence
Domain
Adapter
Adapter
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
SPI
API
{}
Domain
Adapter
Adapter
SPI
API
Alistair Cockburn's pattern
DB
SPI
Nuclear
Reactor
REST
API
DB
SPI
Delorean
REST
API
DB
SPI
REST
API
DB
SPI
REST
API
Nuclear
Reactor
Delorean
DB
SPI
REST
API
DB
SPI
REST
ACL
SPI
INPROC
API
Nuclear
Reactor
Delorean
SPI
Delorean Module
Domain
M Horse
Power
generatePower()
Nuclear
Reactor
API
Nuclear Reactor
Domain
GigaWatts
generatePower()
generatePower
Nuclear
Reactor
Controller
persistence
DB
DeLorean
persistence
Controller
DB
API
SPI
SPI
API
Nuclear
Reactor
Controller
persistence
DB
DeLorean
persistence
Controller
DB
InPROC
Flux Capacitor
space-time continuum
Time Jump
Flux Capacitor
Zoned
Date
Time Circuit
Time Circuit
Flux Capacitor
space-time continuum
Time Jump
Flux Capacitor
Time Circuit
Time Circuit
Zoned
Date
Flux Capacitor
space-time continuum
Time Jump
Flux Capacitor
Zoned
Date
Time Circuit
Time Circuit
Date?
Flux Capacitor
Time Circuit
µ
Flux capacitor
µ
Time circuit
µ
Flux capacitor
µ
Time circuit
µ
DeLorean
µ
Nuclear Reactor
DeLorean
Flux Capacitor
Plutonium Pellet
Nuclear reactor
GigaWatt
Plutonium Chamber
Nuclear Reactor
Engine
Tank
Speed
Fuel
Level
space-time continuum
Time Jump
Flux Capacitor
Zoned
Date
Time Circuit
Time Circuit
{}
space-time continuum
Engine
Time Circuit
Tank
TimeStamp
Fuel
Level
GigaWatt
Speed
Time Jump
Nuclear Reactor
Plutonium Chamber
Plutonium Pellet
Flux Capacitor
* missing link
* sweat spot erreur low cost
* TTM
* tu peux changer la stratégie de deploiement sans changer le design
* Model first, deploy as you wish
{}
Engine
Time Circuit
Tank
TimeStamp
Fuel
Liter
Time Jump
Nuclear Reactor
Delorean
Plutonium Pellet
Flux Capacitor
GigaWatt
Miles
Per Hour
{}
Engine
Time Circuit
Tank
TimeStamp
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
GigaWatt
Fuel
Liter
Delorean
Miles
Per Hour
{}
Engine
Time Circuit
Tank
TimeStamp
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
GigaWatt
Fuel
Liter
Delorean
Miles
Per Hour
{}
Engine
Time Circuit
Tank
TimeStamp
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
GigaWatt
Fuel
Liter
Delorean
Miles
Per Hour
{}
Engine
Time Circuit
Tank
TimeStamp
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
GigaWatt
Fuel
Liter
Delorean
Miles
Per Hour
{}
Engine
Tank
TimeStamp
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
GigaWatt
Time Circuit
Fuel
Liter
Delorean
Miles
Per Hour
{}
Engine
Tank
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
GigaWatt
Time Circuit
Fuel
Liter
Delorean
TimeStamp
Miles
Per Hour
{}
Engine
Tank
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
GigaWatt
Time Circuit
Fuel
Liter
Delorean
TimeStamp
Miles
Per Hour
{}
Engine
Tank
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
Time Circuit
Fuel
Liter
Delorean
TimeStamp
GigaWatt
Miles
Per Hour
{}
Engine
Tank
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
Time Circuit
Fuel
Liter
Delorean
TimeStamp
GigaWatt
Miles
Per Hour
{}
Engine
Tank
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
Time Circuit
Fuel
Liter
Delorean
TimeStamp
GigaWatt
Miles
Per Hour
{}
Engine
Tank
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
Time Circuit
Fuel
Liter
Delorean
TimeStamp
GigaWatt
Miles
Per Hour
Delorean
Engine
Time Circuit
Tank
TimeStamp
Fuel
Liter
GigaWatt
Miles
Per Hour
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
Physics Elements
Time Travel
DeLorean
Engine
Time Circuit
Tank
space-time continuum
Time Jump
Nuclear Reactor
Delorean
Plutonium Pellet
Flux Capacitor
TimeStamp
Fuel
Level
Speed
GigaWatt
µ
µ
µ
Physics Elements
Time Travel
DeLorean
Engine
Time Circuit
Tank
space-time continuum
Time Jump
Nuclear Reactor
Plutonium Chamber
Plutonium Pellet
Flux Capacitor
TimeStamp
Fuel
Level
Speed
GigaWatt
µ
µ
µ
Time Travel
DeLorean
Engine
Time Circuit
Tank
space-time continuum
Time Jump
Nuclear Reactor
Plutonium Chamber
Plutonium Pellet
Flux Capacitor
µ
µ
TimeStamp
Fuel
Liter
GigaWatt
Miles
Per Hour
Time Travel
DeLorean
Engine
Time Circuit
Tank
space-time continuum
Time Jump
Nuclear Reactor
Plutonium Chamber
Plutonium Pellet
Flux Capacitor
µ
µ
Date
Time
GigaWatt
Fuel
Liter
Miles
Per Hour
Physics Elements
Time Travel
DeLorean
Engine
Time Circuit
Tank
space-time continuum
Time Jump
Nuclear Reactor
Plutonium Chamber
Plutonium Pellet
Flux Capacitor
TimeStamp
Fuel
Level
Speed
GigaWatt
µ
µ
µ
Physics Elements
Time Travel
DeLorean
Engine
Time Circuit
Tank
space-time continuum
Time Jump
Nuclear Reactor
Plutonium Chamber
Plutonium Pellet
Flux Capacitor
TimeStamp
Fuel
Level
Speed
GigaWatt
µ
µ
µ
Delorean
Engine
Time Circuit
Tank
TimeStamp
Fuel
Liter
GigaWatt
Miles
Per Hour
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
Delorean
Engine
Time
Circuit
Tank
TimeStamp
Fuel
Liter
GigaWatt
Miles
Per Hour
Time Jump
Nuclear Reactor
Plutonium Pellet
Flux Capacitor
Controller
Persistence
Domain
Adapter
Adapter
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
API
SPI
Time Travel
Time Jump
Nuclear reactor
Plutonium Chamber
Plutonium Pellet
Flux Capacitor
Zoned
Date
Fuel
Level
Speed
GigaWatt
Physics Elements
space-time continuum
Engine
Time circuit
Tank
DeLorean
DB
DB
C
P
C
P
DB
DB
C
P
C
P
INP
HIVED Modular monolith is a more supple design when dealing with uncertainty and makes the boundaries between the different business concerns explicit, helping us to do better choices
There is a lot of reasons to split into services. If we don't prepare the modules for extraction is dramatically more costly
Extractable bounded modules:
=> Vertical Slicing (including DB + tests)
=> InProc Ports & Adapters (no direct dependencies)
Booking
ACL
CF
CF
Money
Search