VeUP
← All case studies
Data & Analytics · Streaming security analytics
Feroot logo

Hardening a ~3-billion-events/month client-side threat-detection pipeline on AWS

AdvisoryTarget-state architecture design & costed POCCost-optimization deep diveStreaming ingest & data-lake designMarketplace listing launchManaged billing & resell
3 billion
browser-side telemetry events a month, at peak scale
Costed plan
every reliability and cost driver paired with a fix
Amazon KinesisAWS LambdaAmazon OpenSearchAmazon S3

Strip away the domain and Feroot’s product is a streaming analytics platform: up to ~3 billion browser events a month ingested through Amazon Kinesis Data Streams, transformed by ~15–20 Lambda consumers, aggregated in Amazon OpenSearch Service for customer queries, and archived to an Amazon S3 replay lake. VeUP’s engagement modernized that analytics estate end to end — de-skewed distribution, edge-throttled ingestion, and lifecycle-governed indices — against explicit freshness and cost criteria.

The challenge

The analytics contract is demanding: security customers expect events to appear in their dashboards within a minute or two, aggregated hourly, forever queryable — while ingest volume swings by an order of magnitude as individual customer projects spike to half a billion events a month. Under review, the platform showed the standard pathologies of a grown-not-designed streaming estate: partition skew concentrating load, aggregate updates amplifying write costs, ungoverned index aging, and unit economics that scaled linearly with volume when the business needed them sub-linear.

The solution

VeUP mapped the full analytics topology — API edge, dual Kinesis streams (raw and enriched), the consumer fan-out, the OpenSearch aggregate tier, and the Firehose → S3 archive — and delivered a modernization plan where every driver has a named fix. Partition de-skew makes stream throughput additive across shards; entitlement and throttling move to the edge so the analytics tiers only process billable events; the aggregate layer moves to append-only writes with materialized hourly rollups; and index lifecycle management ages data down storage tiers with the S3 lake guaranteeing replayability. The plan also scoped an optional real-time OLAP pilot alongside OpenSearch for the workloads where columnar aggregation fits better. Success criteria were set like an analytics SLA: near-zero dropped events at peak, sub-60–90-second event-to-dashboard freshness plus hourly rollups, and a measured, per-component cost per ingested event trending down.

Production outcomes

KPIResult
Analytics throughput~3 billion events/month through the streaming estate — Kinesis ingestion, ~15–20 Lambda transform consumers, OpenSearch aggregation, S3 archival — in continuous production operation.
Freshness contractSub-60–90-second event-to-aggregate freshness plus hourly rollups held as the modernization’s success criterion — analytics latency treated as a product SLA, not an aspiration.
Unit economicsEvery reliability and cost driver mapped to a specific AWS-native remediation — de-skew, edge enforcement, append-only aggregates, ILM — with per-ARN cost telemetry making cost-per-event a managed metric.
Lessons & continuationStreaming analytics platforms degrade by accretion — periodic architecture-of-record reviews with costed fixes are how they stay sub-linear; and a replay lake under the analytics tier converts risky schema and index changes into routine operations.
AWS services in production
Amazon Kinesis Data Streams (ingest + enriched)AWS Lambda (consumers)Amazon OpenSearch Service (hourly aggregates)Amazon Kinesis Data FirehoseAmazon S3 (replay lake)Amazon API Gateway (edge)Amazon CloudWatch