VeUP
← All case studies
Amazon Kinesis · Firehose ingestion
Bronto logo

BrontoBytes runs 4-5 TB/day per customer on AWS Lambda + Kinesis Firehose

Well-Architected ReviewAdvisoryHigh-risk-issue remediation roadmapResilience-gap assessment (RTO/RPO)Blast-radius & tenancy isolation reviewCost-optimization deep diveStreaming ingest & data-lake designServerless analytics on S3Workload placement & runtime selectionCommitment & RI optimizationRightsizing & instance-family modernizationUnit-cost optimizationMulti-tenant isolationFoundational Technical Review readinessMarketplace listing launchManaged billing & resellStanding cost-optimization mechanism
4–5 TB
per day, per customer, in production
30–40%
per-search cost-reduction target, latency-guarded
Managed
ingestion modernized onto Kinesis Firehose
Amazon Kinesis Data FirehoseAmazon S3AWS LambdaAmazon CloudWatch

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

KPIResult
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 pathLambda 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 engineeringRecord 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 & continuationAt 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.
AWS services in production

Amazon Kinesis Data Firehose (managed ingestion) · Amazon S3 (log store) · AWS Lambda (GraalVM burst-search fan-out) · Amazon CloudWatch