Re-engineering a legacy ETL pipeline as event-driven serverless

How we rebuilt a legacy .NET ETL system as an event-driven, real-time serverless pipeline on AWS - joining data collection, transformation and delivery end to end
Client
Distribute
What we built
Serverless ETL rebuild
Technology
AWS Lambda, Amazon Kinesis, Amazon Kinesis Data Firehose, Amazon Redshift, Amazon DynamoDB, Amazon SQS, Amazon S3, Amazon EventBridge, Node.js
Published
A Mediterranean coastline at golden hour
Distribute logo

Modernising the engine of a travel-data business

Distribute is a UK travel-data business whose platform ingests holiday and package data from major UK travel operators, transforms it, and delivers it onward to downstream feed partners. At the heart of that platform sat an ageing ETL (Extract, Transform, Load) system built on legacy .NET, and it was reaching the limits of what it could sustain. We re-engineered that pipeline from the ground up as an event-driven, serverless architecture on AWS - one that streams data in real time, scales elastically with demand, and costs a fraction of the always-on system it replaced.

The legacy challenge

The original system was a monolithic .NET application responsible for the entire data journey. Over time it had become expensive to run, difficult to change, and hard to scale to keep pace with growing data volumes. Fixed infrastructure meant paying for capacity around the clock, whether or not data was flowing.

Distribute needed a pipeline that could ingest high volumes of data from multiple external operator sources continuously and reliably, transform it into a consistent format for downstream consumption, scale automatically without paying for idle capacity, and give the team clear operational visibility and simple controls over the flow of data.

The full data journey, end to end

What made this engagement distinctive is that we were trusted with the full breadth of Distribute's data journey. We joined the "bookends" of the platform - the collection of source data at one end, and the APIs that serve it at the other - with a brand-new serverless ETL system in the middle. The result is a single, coherent pipeline from raw source data through to partner-ready output.

An event-driven serverless architecture on AWS

We rebuilt the pipeline as a set of small, independent AWS Lambda functions, coordinated by events rather than a single long-running application. It has two complementary halves.

Ingestion. The team decides what to collect in an ordinary spreadsheet, uploaded to Amazon S3. A Lambda expands that spreadsheet - a handful of rows describing destinations, dates, durations and party sizes - into the full combination of individual queries it implies, on the order of a million a day. Those queries are then metered onto an Amazon SQS queue at a carefully controlled rate so ingestion stays smooth and comfortably within each operator's API limits. The rate limiter is itself serverless and stateless: once a minute it reads only the next slice of the query file straight from S3 (using S3 Select byte ranges), keeps its position in DynamoDB, and spreads that minute's work evenly across the window - so it resumes exactly where it left off and never runs a server of its own. Worker Lambdas then retrieve the source data, transform it into a standard format, and publish it onto the platform's central real-time streaming bus, built on Amazon Kinesis. To avoid disrupting anything downstream, we reverse-engineered the exact record format the legacy system produced - down to its hashing scheme - so the new pipeline's output is byte-for-byte compatible with what consumers already expected.

Consumption and delivery. A fleet of consumer Lambdas reads from that streaming bus. A single, config-driven transform engine turns each canonical record into both a fast-access item in Amazon DynamoDB and a row batched into an Amazon Redshift data warehouse via Kinesis Data Firehose - one engine feeding many destinations. Generating the partner feed files is fully event-driven: an hourly Lambda fires an asynchronous Redshift query and stops, and a separate Lambda wakes only when that query finishes to stream the results into feed files on S3. No function ever sits idle waiting on the warehouse.

Key AWS services

  • AWS Lambda: the entire pipeline runs as small, single-purpose serverless functions - no servers to manage or patch.
  • Amazon Kinesis: a real-time streaming bus that decouples data collection from downstream processing.
  • Amazon Kinesis Data Firehose: reliably batches streamed data into the analytics warehouse.
  • Amazon Redshift: a scalable data warehouse queried asynchronously to generate output feeds.
  • Amazon DynamoDB: a fast, serverless key-value store for the hot cache and the rate limiter's cursor.
  • Amazon SQS: rate-controls high-volume ingestion so it stays smooth and reliable.
  • Amazon S3: durable storage for configuration inputs and generated output files.
  • Amazon EventBridge & CloudWatch: event-driven scheduling, dashboards and alerting for full operational visibility - including automated phone-call paging to the on-call engineer when something needs attention.

Built for scale, cost and control

Because every component is serverless, the pipeline scales from zero to high throughput automatically, and Distribute pays only for the compute it actually uses - a dramatic change from the fixed cost of the legacy system. And because collection is split into independent per-operator pipelines, the team has fine-grained command over the flow: any single pipeline can be paused instantly with one switch, without touching the rest.

“Rebuilding the engine of a live data business while it keeps running is the kind of work I enjoy most. We matched the old system's output byte for byte, so nobody downstream noticed the switch - and underneath it Distribute went from a fixed round-the-clock bill to paying only for the data that actually flows.”
Martin Hicks, Principal Consultant, Si Novi

Results: a modern pipeline that scales with the business

  • Elastic scale: the pipeline scales automatically with data volumes, with no fixed capacity to provision.
  • Lower running costs: pay-per-use serverless compute replaced always-on infrastructure, cutting operational cost significantly.
  • Real-time flow: a streaming architecture moves data through the system continuously rather than in slow, batch cycles.
  • No disruption downstream: byte-compatible output meant consumers saw a modern engine behind an unchanged format.
  • Reliability and visibility: dashboards and automated alerting give the team clear insight and fast response.
  • Maintainability: small, independent functions are far easier to understand, change and extend than a single legacy application.

About Si Novi: cloud-native and serverless specialists

We specialise in designing cloud-native applications and serverless solutions that integrate complex business processes with scalable AWS infrastructure.

By modernising legacy systems into event-driven, serverless architectures, we help businesses like Distribute cut running costs, scale effortlessly, and move faster - while keeping full control of their data.

Something similar?

Let's walk through how we'd approach it.

Work we have done for businesses like yours

Golf course
Insurance platform rebuild Published 2026

Rubber Ring

Rubber Ring's digital insurance business had outgrown its original platform.

Discover how we rebuilt it on a modern, event-sourced architecture on AWS - a single-table DynamoDB source of truth streamed into a PostgreSQL read model, with containerised React Router 7 and PHP applications on ECS Fargate - and migrated the entire live book in one cutover.

Rubber Ring logo
Read more: Rubber Ring
Duwio workspace interface
Cloud-native SaaS platform Published 2025

Duwio

Working with Spacesuit Media, we transformed years of experience in image delivery into Duwio - a new SaaS platform for creative professionals, re-engineered from the ground up on AWS.

Built on an AWS well-architected foundation, it enables photographers and agencies to store, tag, search and deliver images seamlessly from anywhere in the world.

Read more: Duwio
GT World racing cars in motion
React Native mobile app Published 2025

SRO Motorsports Group

Si Novi partnered with Whiteflame and SRO Motorsports Group to build a new GT World app, replacing a Europe-only version with one that covers every SRO championship worldwide.

It brings together live video, timing, schedules, team data and race reminders each fan can tune to the series they follow, on a single React Native codebase over a serverless AWS backend.

Read more: SRO Motorsports Group
A package-holiday beach with sun loungers at golden hour
Serverless API rebuild Published 2025

Distribute

Distribute serves package-holiday data to a range of downstream partners through a business-critical API.

Discover how we rebuilt that API as a modern, serverless service on AWS - introducing a clean HTTP/JSON interface while keeping every existing consumer working through a zero-downtime migration.

Distribute logo
Read more: Distribute
Jaguar Land Rover tooling and equipment
Distribution web platform Published 2024

Jaguar Land Rover

Discover how Si Novi partnered with Jaguar Land Rover to build a scalable, secure AWS-powered web application for global tooling distribution.

Learn about the innovative solution, including recent enhancements for electric vehicle tooling, that supports 13 languages and over 40 regions worldwide.

Read more: Jaguar Land Rover
All case studies

Trusted to build
the software businesses depend on

Alliance Bernstein Logo
Rubber Ring Insurance Logo
Ledgerscope Logo