
BrontoBytes runs 4-5 TB/day per customer on AWS Lambda + Kinesis Firehose
The customer’s platform ingests, stores, and queries customer log data in real time at roughly 4–5 TB per day per customer at scale. VeUP’s Well-Architected review and modernization moved the ingestion path onto Amazon Kinesis Data Firehose — a managed, buffered delivery stream into the Amazon S3 log store — replacing a chain of Lambda log-forwarders and engineering the flow control that keeps ingest economics honest at terabyte scale.
The challenge
Log ingestion is a workload that punishes hand-built plumbing: it never stops, it bursts with every customer incident, and at multi-TB/day the difference between an efficient and an inefficient ingest path is a material line item. The platform’s Lambda log-forwarder chain carried operational burden and cost sensitivity — every forwarded batch invoked compute, and delivery semantics were the platform’s own problem. A subtle economic trap compounded it: Firehose bills in 5 KB increments, so a naive record-shaping strategy can pay for padding rather than payload. The ingest tier needed to become boring — managed, buffered, durable — with its billing behavior engineered, not discovered.
The solution
VeUP’s modernization put Amazon Kinesis Data Firehose at the front of the platform: customer log flows deliver into Firehose, which buffers, batches, and lands them in the S3 log store with managed delivery semantics — no forwarder fleet to operate, back-pressure and retry handled by the service. The design work concentrated where the money is: record sizing and batching tuned against Firehose’s 5 KB billing increment so the platform pays for log data, not for rounding; buffer intervals tuned to balance freshness against object efficiency in S3; and the flow-control posture hardened so tenant bursts degrade gracefully instead of cascading. Downstream, the platform’s hundreds of GraalVM-compiled Java Lambda functions continue to fan out over the S3 store for burst search, with the review’s FinOps program targeting a 30–40% reduction in per-search Lambda cost — the ingest and query tiers optimized as one economic system, instrumented in CloudWatch.
Production outcomes
| KPI | Result |
|---|---|
| Ingest scale | ~4–5 TB/day per customer at scale delivered through managed Firehose streams into the S3 log store — the ingest tier operated as a service, not a fleet. |
| Modernized path | Lambda log-forwarder chain retired in favor of Firehose delivery — fewer moving parts in the always-on path, delivery semantics owned by the managed service. |
| Billing-aware engineering | Record shaping and buffering engineered against the 5 KB billing increment — ingest cost tracking data volume rather than record-count artifacts, inside a FinOps program targeting 30–40% off per-search compute. |
| Lessons & continuation | At TB/day scale, managed ingestion wins twice — once in operations, once in economics — but only when the service’s billing physics are designed for; reading the pricing model as a spec is part of the architecture. |
Amazon Kinesis Data Firehose (managed ingestion) · Amazon S3 (log store) · AWS Lambda (GraalVM burst-search fan-out) · Amazon CloudWatch