DON'T FOCUS ON THE THINGS—THE NOUNS
FOCUS ON WHAT HAPPENS—THE EVENTS
Slide 30
Slide 30 text
LET THE
EVENTS DEFINE
THE BOUNDED CONTEXT
Slide 31
Slide 31 text
EVENTS REPRESENT FACTS
Slide 32
Slide 32 text
To condense fact from
the vapor of nuance
— Neal Stephenson, Snow Crash
Slide 33
Slide 33 text
WHAT ARE THE
FACTS?
Slide 34
Slide 34 text
TRY OUT
EVENT STORMING
Slide 35
Slide 35 text
UNDERSTAND HOW FACTS ARE CAUSALLY RELATED
HOW FACTS FLOW IN THE SYSTEM
Slide 36
Slide 36 text
THINK IN TERMS OF
CONSISTENCY BOUNDARIES
Slide 37
Slide 37 text
INSIDE DATA: OUR CURRENT PRESENT (STATE)
OUTSIDE DATA: BLAST FROM THE PAST (FACTS)
BETWEEN SERVICES: HOPE FOR THE FUTURE (COMMANDS)
— PAT HELLAND, DATA ON THE INSIDE VS DATA ON THE OUTSIDE
Slide 38
Slide 38 text
AGGREGATE
㱺 UNIT OF CONSISTENCY
㱺 UNIT OF FAILURE
Slide 39
Slide 39 text
WE NEED TO
CONTAIN MUTABLE STATE &
PUBLISH FACTS
Slide 40
Slide 40 text
PRACTICE
REACTIVE DESIGN
Slide 41
Slide 41 text
REACTIVE PROGRAMMING
VS
REACTIVE SYSTEMS
Slide 42
Slide 42 text
REACTIVE PROGRAMMING
CAN HELP US MAKE THE
INDIVIDUAL INSTANCE
HIGHLY PERFORMANT & EFFICIENT
Slide 43
Slide 43 text
GO
ASYNCHRONOUS
Slide 44
Slide 44 text
ASYNCHRONOUS
& NON-BLOCKING
- MORE EFFICIENT USE OF RESOURCES
- MINIMIZES CONTENTION ON SHARED
RESOURCES
Slide 45
Slide 45 text
ALWAYS APPLY BACK-PRESSURE
A FAST SYSTEM
SHOULD NOT OVERLOAD
A SLOW SYSTEM
Slide 46
Slide 46 text
WE NEED TO EXTEND OUR MODELS OF
COMMUNICATION
1. ASYNCHRONOUS MESSAGING (N-M)
2. STREAMING (1-1)
3. SYNCHRONOUS REQUEST/REPLY (1-1)
Slide 47
Slide 47 text
LET'S APPLY REACTIVE PROGRAMMING TO OUR MICROLITHS
Slide 48
Slide 48 text
WE'RE GETTING THERE, BUT WE STILL HAVE A
SINGLE INSTANCE MICROSERVICE
㱺 NOT SCALABLE
㱺 NOT RESILIENT
Slide 49
Slide 49 text
MICROSERVICES
COME AS SYSTEMS
Slide 50
Slide 50 text
EACH MICROSERVICE
NEEDS BE DESIGNED AS
A DISTRIBUTED SYSTEM
A MICROSYSTEM
Slide 51
Slide 51 text
WE NEED TO MOVE
FROM MICROLITHS
TO MICROSYSTEMS
Slide 52
Slide 52 text
REACTIVE SYSTEMS
CAN HELP US BUILD
DISTRIBUTED SYSTEMS THAT ARE
ELASTIC & RESILIENT
Slide 53
Slide 53 text
REACTIVE SYSTEMS ARE BASED ON
ASYNCHRONOUS
MESSAGE-PASSING
Slide 54
Slide 54 text
ALLOWS DECOUPLING IN
SPACE
AND
TIME
Slide 55
Slide 55 text
ALLOWS FOR LOCATION TRANSPARENCY
ONE COMMUNICATION ABSTRACTION ACROSS ALL DIMENSIONS OF SCALE
CORE 㱺 SOCKET 㱺 CPU 㱺
CONTAINER 㱺 SERVER 㱺 RACK 㱺
DATA CENTER 㱺 SYSTEM
Slide 56
Slide 56 text
But I'll take my time
anywhere.
I'm free to speak my
mind anywhere.
And I'll redefine
anywhere.
Anywhere I roam.
Where I lay my head is
home.
— Wherever I May Roam by Lars Ulrich,
James Hetfield (Metallica)
Slide 57
Slide 57 text
SEPARATE THE
STATELESS BEHAVIOR
FROM THE
STATEFUL ENTITY
TO SCALE THEM INDIVIDUALLY
Slide 58
Slide 58 text
No content
Slide 59
Slide 59 text
SCALING (STATELESS) BEHAVIOR
IS EASY
Slide 60
Slide 60 text
SCALING (STATEFUL) ENTITIES
IS HARD
Slide 61
Slide 61 text
THERE IS NO SUCH THING AS A
"STATELESS" ARCHITECTURE
IT'S JUST SOMEONE ELSE'S PROBLEM
Slide 62
Slide 62 text
No content
Slide 63
Slide 63 text
PRACTICE
EVENT-BASED
PERSISTENCE
Slide 64
Slide 64 text
The truth is the log.
The database is a cache
of a subset of the log.
— Pat Helland
Slide 65
Slide 65 text
CRUD
IS DEAD
Slide 66
Slide 66 text
FAVOR
EVENT LOGGING
Slide 67
Slide 67 text
THE LOG
IS A DATABASE OF THE PAST
NOT JUST A DATABASE OF THE PRESENT
Slide 68
Slide 68 text
EVENT LOGGING AVOIDS THE INFAMOUS
OBJECT-RELATIONAL
IMPEDENCE MISMATCH
Slide 69
Slide 69 text
UNTANGLE THE
READ & WRITE
MODELS WITH
CQRS & EVENT SOURCING
Slide 70
Slide 70 text
No content
Slide 71
Slide 71 text
BUT WHAT ABOUT
TRANSACTIONS?
Slide 72
Slide 72 text
In general,
application developers
simply do not implement
large scalable
applications
assuming distributed
transactions.
— Pat Helland
Slide 73
Slide 73 text
USE A PROTOCOL OF
GUESS.
APOLOGIZE.
COMPENSATE.
Slide 74
Slide 74 text
IT'S HOW THE
WORLD WORKS
Slide 75
Slide 75 text
IN SUMMARY
1. Don't build Microliths
2. Microservices come in (distributed) systems
3. Microservices come as (micro)systems
4. Embrace the Reactive principles
5. Embrace Event-first DDD & Persistence
6. Profit!
Slide 76
Slide 76 text
TRY THE
LAGOM
MICROSERVICES
FRAMEWORK
POWERED BY AKKA & PLAY
LAGOMFRAMEWORK.COM
Slide 77
Slide 77 text
LEARN
MORE
DOWNLOAD MY BOOK FOR FREE AT:
BIT.LY/REACTIVE-MICROSERVICES-ARCHITECTURE