Edgecase Engineering

Software architecture, AI systems, backend engineering, and real-world build notes.

Hammed AjibadeSenior backend / AI systems engineer12 dispatches, latest Sep 26, 2026

Keep read progress separate from dispatch acknowledgement

A reader position helps someone resume a log. An acknowledgement records who has accepted the work

dispatchevent logsAPI design

Give a changing list a stable reading point

An API cursor should say what ordering and visibility it preserves while new records arrive

API designpaginationcursors

Put the operation key in the timeout response

A timeout can leave a remote command unresolved. Preserve the original operation identity so the caller can reconcile safely

API designidempotencytimeouts

A retry budget should name its final answer

A caller needs a useful outcome when the retry window closes, especially when the remote result is still uncertain

API designretriestimeouts

Return the first outcome when an idempotency key repeats

Duplicate suppression is only half the contract; callers also need a stable account of what the original request produced

idempotencyAPI designretries

An idempotency key can expire before its risk does

Retry safety depends on the lifetime of the original side effect, not only the convenience of a short deduplication window

idempotencyretriesdistributed systems

The outbox row belongs in the business transaction

Reliable publication starts by committing the business change and its promise to notify as one durable fact

transactional outboxmessagingreliability

Separate request identity from attempt identity

Retries stay auditable when the customer's command keeps one identity and every execution receives another

retriesidempotencyobservability

A dead letter needs an owner before it needs a replay button

Replay is an operational decision about unresolved side effects, not a convenience action for clearing a queue

dead lettersretriesqueues

Timeout budgets should leave room for the caller

A downstream deadline that consumes the entire request window leaves the upstream service no time to classify, record, or recover from the result

timeoutsdeadlinesretries

Queue depth hides the oldest promise

A backlog count can look healthy while one customer's message has been waiting far beyond the delivery contract

queue depthmessage ageSLOs

Name the boundary before you promise ordered delivery

An ordering guarantee is useful only when the producer and consumer agree on which messages belong to the same sequence

message orderingqueuesdelivery contracts