DDD & Microservices At last, some boundaries! Eric Evans - - PowerPoint PPT Presentation

ddd microservices
SMART_READER_LITE
LIVE PREVIEW

DDD & Microservices At last, some boundaries! Eric Evans - - PowerPoint PPT Presentation

DDD & Microservices At last, some boundaries! Eric Evans @ericevans0 domainlanguage.com Why do I like microservices? Autonomous teams with isolated implementation. Acknowledge the rough and tumble of enterprises. Cattle not


slide-1
SLIDE 1

DDD & Microservices

At last, some boundaries!

Eric Evans @ericevans0 domainlanguage.com

slide-2
SLIDE 2

Why do I like microservices?

  • Autonomous teams with isolated implementation.
  • Acknowledge the rough and tumble of enterprises.
  • Cattle not pets.
  • A philosophical break from the past — gives us a

chance to shake assumptions.

slide-3
SLIDE 3

Possibly, some other people mean something else: What I’m saying may not apply to that!

slide-4
SLIDE 4

Services and Messages

S

m m m m m m

slide-5
SLIDE 5

A

m m m m m m

B

slide-6
SLIDE 6

A

a b a a b b

B

How do they understand the messages?

slide-7
SLIDE 7

Bounded Context

  • context The setting in which a word or statement

appears that determines its meaning

  • bounded context The conditions under which a

particular model is defined and applicable.

slide-8
SLIDE 8

A

a b a a b b

B

partners

A B

Context Map

slide-9
SLIDE 9

partners

A B

Context Map

A

a b a a b b

B C

a a a

slide-10
SLIDE 10

Asymmetrical Relationships

Context Name Context Name relationship (point toward power)

slide-11
SLIDE 11

Context Map

A

a b a a b b

B C

a a a partners

A B C

slide-12
SLIDE 12

Context Map

A

a b a a b b

B C

a a a partners

A B C

conforms

slide-13
SLIDE 13

Context Map

partners

A B C

conforms

A

a b a a b b

B C

a a a

D

a a a

slide-14
SLIDE 14

Context Map

A

a b a a b b

B C

a a a

D

a a a partners

A B C

conforms

D

AC

slide-15
SLIDE 15

Context Map

partners

A B C

conforms

D

AC

A

a b a a b b

B C

a a a

D

a a a

E

a a

slide-16
SLIDE 16

Context Map

A

a b a a b b

B C

a a a

D

a a a

E

a a partner s

A B C

conforms

D

AC

E

conforms

slide-17
SLIDE 17

Context Map

partner s

A B C

conforms

D

AC

E

conforms

A

a b a a b b

B C

a a a

D

a a a

E

a a a a a

slide-18
SLIDE 18

Context Map

partner s

A B C

conforms

D

AC

E

conforms

A

a b a a b b

B C

a a a

D

a a a

E

a a

F

b b a a a f

slide-19
SLIDE 19

Context Map

A

a b a a b b

B C

a a a

D

a a a

E

a a

F

b b a a a f partners

A B C

conforms

D

AC

E

conforms

F

conforms AC

slide-20
SLIDE 20

Models need to be clear, 
 not big.

  • Useful models need crisp definitions.
  • Definitions require clear context.
  • Useful models need simple assertions.
  • Assertions require boundaries.
slide-21
SLIDE 21

There are always multiple models.

slide-22
SLIDE 22

Context Map

A

a b a a b b

B C

a a a

D

a a a

E

a a

F

b b a a a f partners

A B C

conforms

D

AC

E

conforms

F

conforms AC

slide-23
SLIDE 23

Context Map

partners

A B C

conforms

D

AC

E

conforms

F

conforms AC

A

a b a a b b

B C

a a a

D

a a a

E

a a

F

b b a a a f

slide-24
SLIDE 24

Context Map

A

a b a a b b

B C

a a a

D

a a a

E

a a

F

b b a a a f partners

A B C

conforms

D

AC

E

conforms

F

conforms AC BBoM

slide-25
SLIDE 25

Context Map

partners

A B C

conforms

D

AC

E

conforms

F

conforms AC BBoM BBoM

A

a b a a b b

B C

a a a

D

a a a

E

a a

F

b b a a a f

slide-26
SLIDE 26

Context Map

partners

A B C

conforms

D

AC

E

conforms

F

conforms AC BBoM BBoM

A

a b a a b b

B C

a a a

D

a a a

E

a e a e

F

b b ae ae ae f

Fiction! Map what is.

slide-27
SLIDE 27

Not all of a large system will be well designed.

slide-28
SLIDE 28

Context Map

A

a b a a b b

B C

a a a

D

a a a

E

a e a e

F

b b ae ae ae f partners

A B C

conforms

D

AC

E F

conforms AC BBoM BBoM BBoM ??? ???

Patterns describe good places to be.

slide-29
SLIDE 29

Context Map

A

a b a a b b

B C

a a a

D

a a a

E

a e a e

F

b b ae ae ae f partners

A B C

conforms

D

AC

E F

conforms AC BBoM BBoM AC AC BBoM

slide-30
SLIDE 30

Interchange context

slide-31
SLIDE 31

Context Map

A

a b a a b b

B C

a a a

D

a a a

E

a a

F

b b a a a f partners

A B C

conforms

D

AC

E

conforms

F

conforms AC

slide-32
SLIDE 32

Context Map

partners

A B C

conforms

D

AC

E

conforms

F

conforms AC

A

a b a a b b

B C

i i i

D

i i i

E

i i

F

b b i i i f

slide-33
SLIDE 33

Context Map

A

a b a a b b

B C

i i i

D

i i i

E

i i

F

b b i i i f partners

I B C

conforms

D

AC

E

conforms

F

conforms AC

A

AC

slide-34
SLIDE 34

Why not logical boundaries?

  • Smart people point out that most of what I want is

the logical partitioning of the system.

  • We’ve had decades to get that to work.
  • Some techniques are too subtle to survive the

rough and tumble.

slide-35
SLIDE 35

Wrap up

  • Subtle design (such as DDD) requires concrete

boundaries.

  • Lots of services recreate some of the old problems.
  • Context Maps help visualize and communicate

about those problems.

  • Modest use of interchange contexts is one way of
  • rganizing coherent services.
slide-36
SLIDE 36

Not all of a large system will be well designed.

slide-37
SLIDE 37

DDD & Microservices

At last, some boundaries!

Eric Evans @ericevans0 domainlanguage.com