@JulienTopcu

@JosianChevalier

@JulienTopcu

@JosianChevalier

Comfort
Class

Price

Schedule

Fare

Space
Train

Booking

Criteria

Selection

Search

Price

Bound

Schedule

Fare

Space
Train

Comfort
Class

Mandalore Express

@JulienTopcu

@JosianChevalier

Comfort
Class

Price

Schedule

Fare

Space
Train

Booking

Criteria

Selection

Search

Price

Bound

Schedule

Fare

Space
Train

Comfort
Class

Mandalore Express

@JulienTopcu

@JosianChevalier

Comfort
Class

Criteria

Selection

Search

Price

Bound

Schedule

Fare

Space
Train

Price

Schedule

Fare

Space
Train

Booking

Comfort
Class

Search

Booking

@JulienTopcu

@JosianChevalier

Comfort
Class

Criteria

Selection

Search

Price

Bound

Schedule

Fare

Space
Train

Price

Schedule

Fare

Space
Train

Booking

Comfort
Class

Search

Booking

DuplicatingDecoupling!

... when conceptually coupled

@JulienTopcu

@JosianChevalier

Comfort
Class

Selection

Search

Price

Bound

Schedule

Fare

Space
Train

Price

Schedule

Fare

Space
Train

Booking

Comfort
Class

Search ?

Booking ?

Criteria

Criteria

Bound

@JulienTopcu

@JosianChevalier

Comfort
Class

Selection

Search

Price

Bound

Schedule

Fare

Space
Train

Price

Schedule

Fare

Space
Train

Booking

Comfort
Class

Criteria

Criteria

Bound

Search ?

Booking ?

?

?

@JulienTopcu

@JosianChevalier

Space
Train

Search

Fare

Criteria

Selection

Schedule

Price

Bound

Booking

Space
Train

Fare

Schedule

Price

Comfort
Class

Comfort
Class

?

Search ?

Booking ?

@JulienTopcu

@JosianChevalier

Space
Train

Search

Fare

Criteria

Selection

Schedule

Price

Bound

Booking

Space
Train

Fare

Schedule

Price

Comfort
Class

Comfort
Class

?

Search ?

Booking ?

Splitting into services too early...

Trying to find boundaries...

Through behaviors ?

@JulienTopcu

@JosianChevalier

Space
Train

Search

Fare

Criteria

Selection

Schedule

Price

Bound

Booking

Space
Train

Fare

Schedule

Price

Comfort
Class

Comfort
Class

?

Search ?

Booking ?

@JulienTopcu

@JosianChevalier

Space
Train

Search

Fare

Criteria

Selection

Price

Bound

Booking

Space
Train

Fare

Price

Comfort
Class

Comfort
Class

Search ?

Booking ?

Amount

Currency

Currency

Mandalore
Express

Mandalore
Express

Schedule

Amount

@JulienTopcu

@JosianChevalier

Space
Train

Search

Fare

Criteria

Selection

Price

Bound

Booking

Space
Train

Fare

Price

Comfort
Class

Comfort
Class

Search ?

Booking ?

Amount

Currency

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Schedule

Amount

@JulienTopcu

@JosianChevalier

Space
Train

Search

Fare

Criteria

Selection

Price

Bound

Booking

Space
Train

Fare

Price

Comfort
Class

Comfort
Class

Search ?

Booking ?

Amount

Currency

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Schedule

Amount

@JulienTopcu

@JosianChevalier

Search ?

Booking ?

Amount

Currency

Selection

Bound

Fare

Price

Comfort
Class

Criteria

Space
Train

Currency

Space
Train

SpaceTrains
Booker

SpaceTrains
Finder

Search

Booking

Schedule

Amount

@JulienTopcu

@JosianChevalier

Search ?

Booking ?

Amount

Currency

Selection

Bound

Fare

Price

Comfort
Class

Criteria

Space
Train

Currency

Space
Train

SpaceTrains
Booker

SpaceTrains
Finder

Search

Booking

Schedule

Amount

@JulienTopcu

@JosianChevalier

Search ?

Booking ?

Amount

Currency

Selection

Bound

Fare

Price

Comfort
Class

Criteria

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Space
Train

Search

Booking

Space
Train

Amount

Schedule

@JulienTopcu

@JosianChevalier

Search ?

Booking ?

Amount

Currency

Selection

Bound

Fare

Price

Comfort
Class

Criteria

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Fare

Space
Train

Search

Booking

Space
Train

Amount

Schedule

@JulienTopcu

@JosianChevalier

Space
Train

Search

Booking

Search ?

Booking ?

Space
Train

Amount

Currency

Selection

Bound

Selected
Fare

Price

Comfort
Class

Criteria

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Fare
Option

Amount

Schedule

@JulienTopcu

@JosianChevalier

Space
Train

Search

Booking

Search ?

Booking ?

Space
Train

Amount

Currency

Selection

Bound

Selected
Fare

Price

Comfort
Class

Criteria

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Fare
Option

Amount

Schedule

@JulienTopcu

@JosianChevalier

Space
Train

Search

Booking

Search ?

Booking ?

Space
Train

Amount

Currency

Selection

Bound

Selected
Fare

Criteria

SpaceTrains
Booker

SpaceTrains
Finder

Fare
Option

Price

Comfort
Class

Currency

Amount

Schedule

@JulienTopcu

@JosianChevalier

Space
Train

Search

Booking

Search ?

Booking ?

Space
Train

Amount

Currency

Selection

Bound

Selected
Fare

Criteria

SpaceTrains
Booker

SpaceTrains
Finder

Fare
Option

Price

Comfort
Class

Currency

Amount

Schedule

@JulienTopcu

@JosianChevalier

Space
Train

Search

Booking

Search ?

Booking ?

Space
Train

Selection

Bound

Selected
Fare

Criteria

SpaceTrains
Booker

SpaceTrains
Finder

Fare
Option

Price

Comfort
Class

Currency

Amount

Schedule

@JulienTopcu

@JosianChevalier

Schedule

Price

Comfort
Class

Amount

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Space
Train

Search

Booking

Space
Train

Selection

Bound

Selected
Fare

Criteria

Fare
Option

Search

Booking

Shared Kernel

@JulienTopcu

@JosianChevalier

@JosianChevalier

Schedule

Search

Booking

Shared Kernel

Amount

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Space
Train

Search

Booking

Space
Train

Bound

Selected
Fare

Fare
Option

?

?

Selection

Criteria

Price

Comfort
Class

@JulienTopcu

@JosianChevalier

@JosianChevalier

Schedule

Search

Booking

Shared Kernel

Amount

Currency

SpaceTrains
Booker

SpaceTrains
Finder

Space
Train

Search

Booking

Space
Train

Bound

Selected
Fare

Fare
Option

?

?

Selection

Criteria

Price

Comfort
Class

@JulienTopcu

@JosianChevalier

Search

Space
Train

Search

Booking

Booking

Space
Train

Space
Train

Search

Bound

Criteria

Selection

Shared Kernel

@JulienTopcu

@JosianChevalier

Search

Bound

Criteria

Space
Train

Selection

Search

Booking

Booking

Space
Train

AntiCorruption Layer

Space
Train

Search

Space
Train

Shared Kernel

@JulienTopcu

@JosianChevalier

Search

Bound

Criteria

Space
Train

Selection

Search

Booking

Booking

Space
Train

AntiCorruption Layer

Shared Kernel

@JulienTopcu

@JosianChevalier

Shared Kernel

Search

Booking

AntiCorruption Layer

@JulienTopcu

@JosianChevalier

What should we do about the Shared Kernel?

@JulienTopcu

@JosianChevalier

@JulienTopcu

@JosianChevalier

Space
Train

Search

Selection

Bound

Booking

Space
Train

Fare

Schedule

Price

Comfort
Class

Criteria

Shared Kernel

Search

Booking

Amount

Currency

@JulienTopcu

@JosianChevalier

Space
Train

Search

Selection

Bound

Booking

Space
Train

Schedule

Price

Criteria

Search

Booking

SEat
Location

Shared Kernel

Amount

Currency

Fare

Comfort
Class

@JulienTopcu

@JosianChevalier

Space
Train

Search

Selection

Bound

Booking

Space
Train

Fare

Schedule

Price

Criteria

Search

Booking

SEat
Location

Fare

Shared Kernel

Amount

Currency

Comfort
Class

Comfort
Class

@JulienTopcu

@JosianChevalier

Space
Train

Search

Selection

Bound

Booking

Space
Train

Fare

Schedule

Price

Comfort
Class

Criteria

Search

Booking

SEat
Location

Fare

Comfort
Class

Shared Kernel

Amount