Mehdi Akiki

Writing archive

Everything published under Writing, newest first. Each entry is labelled as part of an investigation, an article or reference. Short engineering notes have their own archive.

  • Published on

    Reference · Derived state

    Cursor Pagination vs Offset Pagination

    Offset pagination is easy to write and breaks in two ways: it gets slow, and it skips or repeats rows when the data changes. Cursor pagination fixes both. Here is the difference.
  • Published on

    Reference · Interrupted execution

    Why Exactly-Once Delivery Is a Myth

    Everybody wants exactly-once delivery. Over a network it is impossible. Here is why, and the trick that gives you the same result in practice.
  • Published on

    Reference · Interrupted execution

    What an Idempotency Key Is (and How to Build One)

    A request times out, you retry, and now the customer is charged two times. An idempotency key is the small idea that makes retries safe. Here is what it is and how to build one.
  • Published on
    The right way to learn Kafka is to build a tiny log broker — not a fake queue with ack/delete. One topic, one log file, one offset per consumer group. That is the whole model.
  • Published on
    Most Kafka vs RabbitMQ comparisons say it depends and stop there. This article cuts through the noise by asking one key question about what your system is actually trying to preserve, and maps that directly to the right tool.