3 common pitfalls in (micro?)service integration
CRAFT
How to fail
1. Remote communication is complex
2. Asynchronicity => Timeouts
3. Distributed transactions
Remote communication
- Network is reliable
- Latency is zero
- http://bit.ly/distributedFallacies
Title Text
- Bullet One
- Bullet Two
- Bullet Three

User handles errors


http://bit.ly/circuitbreakerAtNetflix
Subtitle
Circuit breaker

Subtitle
Circuit breaker




Persistent state
- database/scheduler/monitoring
- state machine

It WILL be alright

Asynchronicity
Make a call, even if they don't pick up

2. Timeouts
I've got something special for you


message

Stateful retries
part 2
Subtitle

Observability
- number of retries
- workflows that couldn't be processed in time
- average process time
- context to repair
3. Distributed transactions
All or nothing
A - Atomic
C - Consistent
I - Isolated
D - Durable
...or eventual consistency
A - Atomic
C - consistent
I - Isolated
D - Durable
Compensation

Generate PDF ticket

Reserve seat >
Retrieve payment >

Title Text
Subtitle


Text
Text
Idempotency
Resilience patterns
- circuit breakers
- retries
- timeouts
- idempotency
- and compensation
Resources
Circuit breaker:
- Hystrix
- Jrugged (both seem to be no longer actively developed, but, hey if it does the job…)
- resilience4j - what Netflix uses now
State machine - what adds scheduler and monitor:
- Camunda
@agata_anastazja

Surprise

Faced with the threat of mass extinction, a warming globe and rising inequality, we cannot afford to merely fight symptoms, but have to instead radically rethink the economic and social systems that produce them.
Systematic change
Thank you!
Questions???
3 common pitfalls of microservices integration—and how to avoid them
By Agata Sumowska
3 common pitfalls of microservices integration—and how to avoid them
- 329