3 common pitfalls in (micro?)service integration 

CRAFT

How to fail

1. Remote communication is complex

2. Asynchronicity => Timeouts

3. Distributed transactions

 

 

Remote communication

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???

Made with Slides.com