I shall say this only once

Szymon Pobiega

@SzymonPobiega

Source: IMDb

Pierogi time!

Autor: Stako (File:Ruskie.jpg) [GFDL lub CC-BY-SA-3.0], Wikimedia Commons

Exactly once delivery in face of failures

Exactly once delivery

Exactly once processing

Exactly once processing

Effectively once

\(f(f(x)) = f(x)\)

Framing the problem

  • Don’t lose messages
  • Outcome the same no matter how many times we process the message (idempotence)
  • Don't leak non-durable state (ghost messages)

Requirements change!

If you could add quantity to the order lines that would be GREAT!

Requirements change!

If you could allow order lines to be updated that would be GREAT!

Effectively once

Mostly once

Refactoring sprint!

If you could refrain from adding new features for a month or two and just made the code cleaner and more readable that would be GREAT!

Requirements change!

If you could replace the SQL Sever with some document store that would be GREAT!

Thank you!

Szymon Pobiega

@SzymonPobiega