18

Small, Medium, and Large Deployments

Source: Observability Platform source notes, section 18, “Small, Medium, and Large Deployments”

The enterprise problem and today’s slice

Enterprise problem: A team that deploys the most distributed topology before requirements demand it pays an on-call and upgrade tax, while a topology kept too small loses telemetry or misses availability targets as customers grow.

Whole-course context: The incoming component contract identifies each signal owner and edge; this day chooses the smallest deployment shape that satisfies measured volume, retention, tenancy, and failure-isolation requirements.

Today’s slice: We define evidence-based transitions from a single-cluster stack through regional gateways to a multi-region platform, including rollback conditions.

End-of-day evidence: A signed sizing decision records thresholds, load-test results, failure drills, cost, and a reversible migration plan.

Still unsolved: Per-signal unit economics and schema/privacy governance are deferred, although their limits become inputs to sizing.

The smallest complete model

A deployment should grow only when measured requirements exceed the current shape. Starting distributed creates operational work before it creates customer value; staying small after saturation loses evidence when it is most needed.

Thesis: Choose the smallest topology that passes load, recovery, retention, isolation, and query objectives, then add one failure boundary at a time. Why this matters: topology complexity is permanent on-call work, while a measured exit criterion makes each expansion explainable and reversible.

The model includes collection, buffering, storage, query, and their failure domains. It deliberately excludes per-signal pricing and schema/privacy policy, which constrain the decision but do not justify an unmeasured topology.

Expand the model one boundary at a time

Begin with a local workload-to-store path, then add a regional gateway only when shared policy or isolation needs it, and finally add federated or global backends only when multiple regions require independent failure and scale behavior. The nouns evolve from candidate shape into explicit collection, buffer, storage, and query boundaries.

Teams can mistake scale for maturity, which leads either to needless coordination or to hidden saturation. A deployment envelope is a bounded operating shape with explicit exit criteria, not a prestige tier.

EnvelopeTypical shapeGood fitExit evidence
SmallWorkloads feed Alloy; Prometheus, Loki, and Tempo run locally or in simple modes; Grafana queries themOne cluster, modest retention and volume, no strict multi-tenancy, a small owning teamSustained capacity, retention, availability, tenant isolation, or recovery requirements fail with headroom applied
GrowingPer-cluster agents feed a regional gateway; shared Mimir, Loki, and Tempo provide central queryingSeveral clusters, shared standards, longer retention, centralized alerts, and a platform teamRegional blast radius, independent scaling, or tenant governance can no longer meet explicit objectives
Large multi-regionEdge agents and regional gateways buffer into independently scaled, tenant-aware global or federated backendsHigh ingest, multiple regions, formal compliance, many tenants, dedicated ownershipExit means decomposition or federation driven by measured limits, not simply “more microservices”

Official documentation currently describes monolithic and microservices modes for Mimir, while Loki documents monolithic and microservices modes and is deprecating its simple-scalable mode before Loki 4.0. That is why a topology decision must pin product versions and migration assumptions rather than copying an old diagram indefinitely.

Each new boundary must earn its place by transforming an input into a measurable interface.

BoundaryPurpose, input, and transformationOutput or interfaceScaling constraint and failure modeAlternatives, use when, and avoid when
Workload → local collectorAccept process or node telemetry, batch it, and apply local policyBackend writes plus accepted, rejected, queued, and dropped countersNode resources and local buffer duration; process loss or disk exhaustion can erase queued evidenceUse agents for local discovery and bounded buffering; avoid centralizing all collection through one global endpoint
Agent → regional gatewayAggregate tenant-authenticated streams and enforce shared routingRegional backend writes and replayable queue stateRegional ingress rate, connection count, and buffer capacity; outage creates backlog or lossUse when many clusters share policy or need regional isolation; avoid when one cluster can meet objectives directly
Regional buffer → shared backendReplay normalized telemetry into scalable signal storesDurable blocks and query indexesIngest, compaction, object-store operations, and regional dependency; replay can duplicate or arrive lateUse distributed stores for measured retention, tenancy, or availability needs; avoid microservices mode solely for anticipated growth
Backend → tenant queryFan out bounded queries while enforcing tenant scopePrometheus-compatible, log, trace, and profile query resultsQuery concurrency, range, cache efficiency, and cross-region fan-out; overload rejects or delays investigationsUse federation for independent regions and bounded global views; avoid one synchronous global query path when regional continuity is required

Run the model through one incident

The general rule is to test the current deployment envelope under the failure that motivates the next boundary. A simple example is one collector restart: if its local buffer replays inside the recovery objective and queries remain complete, a regional gateway would not solve a demonstrated problem.

For a realistic telemetry pipeline incident, a regional gateway becomes unavailable during peak checkout traffic. Edge collectors queue within their configured limits, another region continues authorized queries, and the failed region later replays into shared backends. Observed evidence includes peak ingest, backlog maximum, accepted and dropped records, replay duration, duplicate bounds, p95 query latency, and the unaffected-region control. If buffers overflow before recovery or the query layer cannot isolate the region, the current envelope has failed an explicit objective; only then does adding capacity or another isolation boundary become justified.

The incident is not proof merely because data resumes flowing. Completeness, bounded duplicates, customer investigation latency, and healthy-region behavior must all be measured against the same fixture.

Failure modes, trade-offs, and decision rules

The dominant failure mode is scaling by label—“large” or “enterprise”—instead of by a failed objective. The core trade-off is resilience and independent scaling versus upgrades, coordination, caching, object-store operations, security surface, and on-call load.

add exactly one topology boundary only after the simplest candidate fails the same documented objective twice under a versioned production-shaped fixture, and accept the new boundary only if load, fault, cost, tenant-isolation, and rollback probes pass.

Without a repeatable experiment, a migration can improve a benchmark while degrading failure recovery or cost. Run the same protocol before scaling up and before scaling back.

  1. Capture peak and normal ingest by signal, active series, spans per request, log bytes, query concurrency, and retention.
  2. Add documented headroom and define loss, availability, recovery-time, and query-latency objectives.
  3. Replay a versioned workload fixture against the smallest candidate topology.
  4. Fail one collector, gateway, backend instance, and region separately; measure backlog, drops, replay, and healthy controls.
  5. Compare total operational cost, including upgrades, on-call load, and object-store operations.
  6. Falsify the candidate if any objective fails twice under the same fixture; add only the boundary that addresses that failure.
  7. Keep rollback possible until the new topology passes production-shaped probes for the agreed observation window.

Use monolithic or single-binary modes when one ownership and failure domain meets the objectives. Use regional gateways when shared policy, buffering, or isolation is measured. Avoid distributed microservices modes when the only evidence is a growth forecast without a failing load or recovery probe.

Close the loop

Sizing is a control loop, not a one-time architecture ceremony. Apply Observe → Interpret → Decide → Act → Measure using the same requirements and fixture before and after a change.

Observe queue saturation and recovery-objective breaches during the regional telemetry-path drill. Interpret whether the limiting dimension is agent buffer, gateway ingress, backend ingest, or query fan-out. Decide on one bounded capacity or isolation change. Act with a reversible topology revision. Measure backlog maximum, drops, replay duration, query latency, tenant denial, and an unaffected-region control over the agreed window. Roll back if the targeted metric does not improve without regressing cost or isolation; that falsifiable probe prevents complexity from being mistaken for progress.

Key takeaways

Distributed deployment is a response to measured requirements, not the starting definition of an observability platform.

  • Start with the smallest topology that meets explicit service objectives.
  • Separate regional collection failures from global storage and query failures only when the requirement warrants it.
  • Pin version-specific deployment assumptions because supported modes evolve.
  • Make every scale transition reversible and proven by load plus fault evidence.

Checklist

A topology is ready only when its normal and failure behavior are both measured.

  • [ ] Requirements use units, time windows, percentiles, retention, and headroom.
  • [ ] The smallest candidate passes ingest, query, and recovery tests.
  • [ ] Regional drills preserve an unaffected positive control.
  • [ ] Tenant isolation is tested, not inferred from shared infrastructure.
  • [ ] Upgrade, rollback, on-call, and object-storage costs are in the decision.

Sources

Deployment guidance is version-sensitive, so these statements were verified against official product documentation.