otlen.net Replay an event ↓
U01
OTLEN / NET
Technology, infrastructure, engineering
Delivery
At least once
Effect
Exactly once
Revision
2026.10

The systemsUnderneaththe product.

Automation demos are easy. Reliable automation is not. The engineering starts when a webhook arrives twice, two systems disagree, an API times out, a record disappears, a workflow runs out of order, or a model returns something unexpected.

Replay an event ↓ Architecture, integrations, event flows and the patterns that make automation trustworthy
U02

Five rules

The patterns that make automation trustworthy

Most of this is unglamorous. It is also the difference between a demo and a system a business can run on.

Events

Events are the spine

A change in one platform is captured, identified, validated, processed and passed on, without creating duplicates or losing state.

id
evt_7Q2K
type
order.paid
source
storefront
at
2026-10-18T09:14:03Z

Idempotency

Twice in, once done

If the same event arrives twice, the business action happens once. Unique event IDs, state tracking and safe writes make sure of it.

≥1Delivered→=1Applied

Reconciliation

Systems disagree

One platform reports 47 units, another reports 42. A useful integration detects the gap, records the evidence, applies a resolution policy and leaves an audit trail.

47System A≠42System B
Δ 5 units · evidence recorded

Failure

Failure is normal

Timeouts, rate limits, malformed payloads, partial updates and outages are operating conditions. Good architecture makes them visible and recoverable.

  1. Retry
  2. Back off
  3. Dead-letter
  4. Alert

Observability

Answer four questions fast

Logs, metrics, event histories and clear ownership turn debugging from archaeology into operations.

  • What happened?
  • Where did it fail?
  • Why did it fail?
  • What changed because of it?

In one line

Reliable automation is software engineering with consequences in the real world.

U03

Trace

One event, start to finish

A webhook arrives, a model times out, and the sender delivers the same event twice. Replay it and watch the counts: delivered twice, applied once, nothing lost.

Example trace · order.paid · order A-1042
T+ msStageWhat happenedResult
0ReceiveWebhook for order A-1042 arrives with event ID evt_7Q2KAccepted
4ValidatePayload matches schema v3Pass
9Deduplicateevt_7Q2K has not been seen beforeNew
18EnrichCustomer and stock looked up in the source systemsOK
26RulesNo credit hold, stock availablePass
31ModelClassify the delivery note, with a 2 s budgetSent
2,031TimeoutNo answer within the budgetTimeout
4,090Retry 1After a 2 s backoff the model answers, confidence 0.93OK
4,104Write backOrder updated in the ERP using evt_7Q2K as the request keyApplied
4,118ReceiveThe sender delivers the same webhook againDuplicate
4,120Deduplicateevt_7Q2K was already applied, so nothing is writtenSkipped
4,141CloseTrace stored: 12 steps, 1 retry, 1 duplicate ignoredDone
2Delivered
1Applied
1Retries
0Lost

T+4,141 ms

Illustrative IDs and timings. Every OTLEN system keeps a trace with this shape for every event, so the four questions in U02 always have answers.

U04

Failure catalogue

Failure is a normal operating condition

Each failure has a planned response and a place where it shows up. Nothing fails silently.

CodeConditionWhat the system doesShows up as
504TimeoutRetries with exponential backoff. After the last attempt the event moves to the dead-letter queue.Retry count on the trace
429Rate limitedSlows down, honours the Retry-After header and keeps work in the queue.Queue depth
422Malformed payloadRejects the event to the dead-letter queue with the validation error attached.Dead-letter entry with reason
409Duplicate deliverySkips by event ID. Nothing is written twice.Skipped step
503Upstream outageOpens the circuit breaker, holds work in the queue and alerts the owner.Alert and held count
—Partial updateReconciles against the system of record and repairs the gap.Reconciliation report
—Unexpected model outputValidates the answer against a schema. If it fails, a person gets the case with its context.Escalation