Szymon Pobiega

@SzymonPobiega

# $$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!

## 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!

Szymon Pobiega

@SzymonPobiega