Streaming architecture

A log streaming API designed for bursts, retries, and change

Reference patterns for receiving CDN events, protecting sensitive values, normalizing provider schemas, delivering fresh operational data, and preserving replayable source records.

A log streaming API is not only an endpoint. It is a delivery contract across producers, networks, buffers, processors, and destinations. The contract must define authentication, event identity, ordering expectations, retry behavior, size limits, schema versions, redaction, and how consumers detect gaps.

The dual-path architecture

Provider adapter

Receive a stream, file, or pull response; authenticate; decompress; parse; and attach source provenance.

Validation and redaction

Enforce limits, reject malformed records visibly, allowlist fields, and remove secrets before broad fan-out.

Canonical normalization

Map common HTTP, cache, timing, routing, and policy concepts while preserving provider extensions.

Operational stream

Send a compact, bounded event to dashboards, detectors, and short-latency consumers.

Durable archive

Write complete, compressed source and normalized records for replay, backfill, audit, and historical analysis.

Health telemetry

Measure event freshness, queue depth, duplicates, parse failures, redaction failures, and destination errors.

Reference event envelope

application/json
{
  "schema_version": "1.0",
  "event_id": "cf:dist-42:01J...",
  "event_time": "2026-10-23T18:42:11.423Z",
  "observed_time": "2026-10-23T18:42:19.807Z",
  "provider": "example-cdn",
  "service": "catalog-api",
  "http": {
    "method": "GET",
    "route": "/v1/items/:id",
    "status": 200
  },
  "cdn": {
    "cache_outcome": "miss",
    "edge_region": "us-west"
  },
  "timing": {
    "origin_first_byte_ms": 142.7,
    "edge_total_ms": 166.4
  }
}

Delivery semantics

At-least-once delivery is common and practical. It allows a producer or transport to retry when a destination is unavailable, which means consumers must be idempotent. Use a deterministic event key and design writes, counters, and replays so duplicate delivery does not change the result.

Document whether ordering exists globally, per partition, or not at all. Most monitoring and analytics do not require global ordering; they require event time and bounded lateness. Define the maximum event delay each consumer can accept and retain enough buffer to survive downstream outages at peak traffic.

Backpressure and burst design

Size the system for launches, purges, attacks, origin incidents, and failover—not average requests per second. Set maximum record and batch sizes, queue depth targets, consumer-lag thresholds, and a clear overload policy. Separate urgent security or reliability events from bulk analytics if one workload could starve the other.

Dead-letter handling needs ownership, metrics, and a replay process. Track age, error reason, schema version, source, and recovery status. A dead-letter queue that no team reviews is silent data loss with extra storage.

Authentication and data protection

Use mutually authenticated or signed delivery where supported, rotate credentials, restrict destinations, and validate source identity before decompression or parsing. Enforce payload limits and treat every request-derived field as untrusted. Structured formats, control-character handling, and parser isolation reduce log-injection and resource-exhaustion risk.

Apply an allowlist before shared storage. Remove authorization headers, session cookies, secrets, and unapproved query parameters. Transform client addresses where full precision is unnecessary. Record redaction failures as a blocked pipeline error rather than sending questionable data onward.

Schema evolution and replay

Prefer additive optional fields. Breaking changes need a new version, dual-read migration, example fixtures, and a deprecation schedule. Track unknown enum values and unmapped fields so provider changes become visible. Preserve raw source records for a bounded period long enough to correct mapping defects and reprocess historical data.

The full implementation guide, including provider adapters and capability metadata, appears in How to Build a Vendor-Neutral CDN Log Streaming API Pipeline.

Keep the fast path actionable and the archive replayable.

Use a canonical event envelope, idempotent consumers, early redaction, and explicit data-quality objectives.