THE BIG PICTURE
Log API

A clearer contract for every event.

Understand the building blocks of a log API: create useful records, move them reliably, and retrieve them with context.

Event explorerSample data
app-event.json
{
  "schema_version": "1.0",
  "timestamp": "2026-09-21T09:41:02.184Z",
  "severity": "INFO",
  "event_id": "evt_demo_001",
  "event_name": "request.completed",
  "service": "checkout-api",
  "attributes": {
    "route": "/orders/{id}",
    "status_code": 200,
    "duration_ms": 42
  }
}
Synthetic fixture · nothing is sentDownload JSON ↗
DESIGN WITH INTENT

Keep the important distinctions.

Emit with purpose

Define the question an event should answer before choosing its attributes.

Deliver deliberately

Separate acceptance into a queue from durable persistence.

Read with context

Connect events using safe references and clearly defined outcomes.

THE EVENT CONTRACT

Fields with a reason to exist.

A logging library, an ingestion endpoint, and a query API solve different problems. Map these responsibilities before selecting an implementation. A small common envelope can keep basic interpretation consistent while allowing approved attributes for different event types.

These fields illustrate a design pattern. Map them deliberately to your own schema, source, and destination.

Log API example fields
FieldWhat it means
event_nameThe action or occurrence the record describes.
event_idA stable identifier retained across delivery attempts.
timestampWhen the event occurred, with a documented clock.
serviceThe component that produced the event.

A shared JSON shape is a design pattern, not automatic compatibility with a telemetry protocol. Document every mapping to your chosen collector.

Technical reference: OpenTelemetry logs data model . Verify the version and settings used by your own implementation.

FIELD NOTES

Keep following the signal.

All articles →
ONE EVENT IS A GOOD START

Make your next log more useful.

Start with a clear schema. Keep the context that matters.