Case Studies

Work that speaks for itself.

15+ engagements across Cloud & AI, Gaming, Logistics, and more — each one starting with a concrete problem and ending with a verified result.

15+
Case studies
€80B
Largest client revenue
0
Downtime incidents
☁️ Cloud & AI

Customer #1 · Cloud & AI Platform

Over 10,000 peering partners, 1 billion+ end consumers, and a platform running across AWS RDS, EC2, Google Cloud, Kubernetes, and on-premises simultaneously.

€140M
Annual revenue
#1 PostgreSQL AWS RDS Google Cloud Kubernetes

Zero-downtime PostgreSQL cluster migration under 16,000 TPS

Context

A production PostgreSQL cluster needed to move from on-premises to AWS while the platform handled 2,000–16,000 transactions per second across multiple environments. The goal: let AWS manage 90% of the workload. The constraint: no downtime, no data loss.

Risk
  • Platform unavailable for 1+ hours during cutover window
  • Data corruption between old and new clusters
  • Replication failure with no safe rollback
  • Direct revenue impact on 1B+ end consumers
What we did
  • Built the full new environment from scratch
  • Validated replication and failover under live traffic
  • Controlled every cutover step with an instant rollback path
  • Completed the full setup in under 3 months
Zero downtime
Zero data loss
Delivered in under 3 months
Client issued a bonus payment for overdelivery
#2 PostgreSQL Replication High Availability

Preventing a cascading PostgreSQL failure before it happened

Context

PostgreSQL was technically "up" — but the system was silently approaching its real limits. CPU saturation on the primary, growing replication lag, read replicas falling behind, and connection spikes from auto-scaling were forming a chain reaction.

Risk

If the primary failed, replicas were too far behind to promote safely. The likely outcome: full platform outage with possible data loss. The chain was already in motion.

What we did
  • Contained connection storms and stopped long-running blocking queries
  • Tuned replication, WAL handling, and I/O under load
  • Fixed inefficient queries and added missing indexes without downtime
  • Implemented back-pressure and circuit breakers
  • Simulated failover and crash scenarios under real traffic
No downtime
No data loss
No emergency failover required
Platform stabilized under peak load
#3 ClickHouse Billing Analytics

Stabilizing billing analytics under sustained query load

Context

ClickHouse powered the billing system — collecting all client usage data and generating invoices. Data volume and query concurrency were growing steadily, and billing cycles were causing CPU and memory spikes that threatened core platform stability.

Risk
  • Query spikes exhausting CPU & memory
  • Timeouts during invoice generation
  • Incorrect or delayed billing affecting revenue
  • Analytics load destabilizing the main platform
What we did
  • Audited billing data models and aggregation logic
  • Improved partitioning for time-based billing data
  • Optimized heavy aggregation queries and reduced full-table scans
  • Introduced workload isolation and query limits during billing peaks
Stable billing under peak load
No invoice delays
No data inconsistencies
Analytics no longer impacted core systems
#4 ClickHouse Incident Response

ClickHouse production incident containment before a full outage

Context

A ClickHouse instance serving real-time analytics began showing signs of resource exhaustion under peak load — CPU near saturation, memory pressure climbing, and query queues growing. The system had not yet failed, but failure was imminent.

Risk
  • Full ClickHouse outage affecting billing and analytics
  • Data inconsistency during an uncontrolled restart
  • Cascading impact on billing cycles and revenue reporting
What we did
  • Identified root cause: unbounded concurrent queries exhausting all resources
  • Killed the most destructive queries and applied immediate throttling
  • Optimised memory configuration and materialized views under load
  • Added real-time alerting for queue depth and resource saturation
System stabilised without any outage
Analytics and billing pipeline uninterrupted
Throttling controls in place to prevent recurrence
#5 PostgreSQL ClickHouse On-call reduction

Removing on-call firefighting from database operations

Context

Database operations were fully reactive. Engineers constantly switched between feature work and incident response, with no clear ownership of PostgreSQL or ClickHouse in production.

Risk

Burnout, slow recovery times, and repeated incidents caused by the same root issues going unfixed. Every on-call rotation was a firefight.

What we did

Took ownership of both PostgreSQL and ClickHouse in production. Shifted focus from reaction to prevention — establishing change control, predictable maintenance windows, and proactive monitoring across both engines.

Incidents significantly reduced
On-call pressure dropped
Database reliability became predictable
#6 MySQL PostgreSQL Zero-downtime migration

Zero-downtime MySQL to PostgreSQL migration under live traffic

Context

The platform's MySQL database was reaching its limits for complex analytical queries. The decision was made to migrate to PostgreSQL for better query planning, native replication features, and long-term maintainability — without any service interruption.

Risk
  • Data type incompatibilities between MySQL and PostgreSQL
  • Application breakage during schema translation
  • Downtime risk during cutover affecting live users
  • Silent data drift between old and new databases
What we did
  • Audited all schemas and resolved incompatibilities before migration
  • Ran data migration with live replication to keep both databases in sync
  • Validated query equivalence across all critical application paths
  • Performed cutover during a low-traffic window with a tested rollback path
Zero downtime during migration
Zero data loss
Improved query performance on PostgreSQL
Application compatibility fully verified before cutover
#7 ClickHouse Kubernetes On-premises → Cloud

Migrating 500 GB of billing data from on-premises to Kubernetes

Context

A ClickHouse cluster holding ~500 GB of billing data (5+ years of records) needed to move from bare-metal on-premises infrastructure to Kubernetes — under constant production load.

Risk
  • Data loss in historical billing records
  • Inconsistent analytics during cutover
  • Downtime impacting reporting and revenue
What we did
  • Built a parallel ClickHouse cluster in Kubernetes
  • Established real-time data replication under live traffic
  • Executed a controlled cutover with full rollback capability
Zero downtime
Zero data loss
No impact on billing or analytics
#8 MariaDB 18,000 QPS SaaS · Gaming · Payments

Preventing a cascading MariaDB failure at 18,000 queries per second

Context

A MariaDB production system (~200 GB) handling ~18,000 queries/sec across SaaS, Gaming, and Payments workloads. Binlogs were growing uncontrollably and lock contention was blocking critical writes — pressure building toward a full failure.

Risk
  • Uncontrolled binlog growth → disk exhaustion
  • Lock storms blocking critical write paths
  • Full database outage under high load
What we did
  • Identified and stopped the locking queries
  • Stabilized binlog behavior and rotation
  • Reduced write pressure under sustained load
  • Restored healthy replication and system balance
No downtime
No data loss
System stabilized under 18k QPS
#9 PostgreSQL Backup Validation 5 TB cluster

Automated backup testing on a 5 TB PostgreSQL cluster

Context

A 5 TB PostgreSQL cluster (1 primary + 2 replicas) serving a SaaS platform. Backups were being created on schedule — but had never been tested. Nobody knew if they would actually restore.

Risk
  • Corrupted or incomplete backups going undetected
  • Restore process failing at the worst possible moment
  • Irreversible data loss with no recovery path
What we did
  • Implemented automated backup validation on a regular schedule
  • Ran full restore tests to confirm recoverability
  • Added monitoring and alerts for backup integrity
Backups continuously verified
Restore process confirmed working
Data loss risk eliminated
#10 PostgreSQL Grafana Prometheus

Custom monitoring that actually catches problems

Context

A production PostgreSQL system under constant SaaS load. Standard monitoring was in place — but issues were only detected after users noticed them. Alerts were either missing or too noisy to act on.

Risk
  • Hidden performance degradation going unnoticed
  • Sudden incidents with no warning signal
  • Slow reaction time to critical issues
What we did
  • Built custom dashboards in Grafana + Prometheus
  • Added visibility into slow queries, lock contention, and replication health
  • Implemented precise alerting — signal only, no noise
Early detection of problems
Faster incident response
No more unexpected database incidents
🎰 Gaming

Customer #2 · Gaming Platform (B2B2C)

300+ active partners, multiple production environments, and databases ranging from 10 GB to 32 TiB — all requiring zero-downtime operations across every change.

€25M
Annual revenue
#11 MySQL PostgreSQL GCP → AWS 50 Databases

50 databases, up to 32 TiB — migrated from GCP to AWS without downtime

Context

50 production databases (10 GB to 32 TiB each) running at 500–15,000 TPS needed to move from Google Cloud to AWS. Any downtime would directly affect 300+ active partners and their end users.

Risk
  • Platform unavailable during migration window
  • Data corruption across multiple large databases
  • Replication inconsistency under high TPS
  • No safe rollback if cutover failed
What we did
  • Built the full AWS environment from scratch
  • Validated replication and failover under live traffic for every database
  • Kept an instant rollback path active throughout
  • Completed all 50 cutovers without a single incident
Zero downtime across all 50 databases
Zero data loss
Active client for 2+ years
#12 Database Archiving pt-archiver S3 · Athena

Reducing a 2 TB+ production database by 50–70% without losing access to any data

Context

A production database growing past 2 TB with a mix of active transactional data and years of historical records (transactions, logs, billing). Query performance was degrading and backups were becoming unmanageably slow.

Risk
  • Continued performance degradation under load
  • Backup and recovery becoming unreliable at this size
  • Rising storage and infrastructure costs
What we did
  • Archived 1–1.5 TB of historical data using pt-archiver
  • Moved archived data to S3 with full query access via AWS Athena
  • Left the production DB with only active data
Production DB reduced by 50–70%
Faster queries and lighter backups
Full historical data access preserved via Athena
Lower infrastructure costs
#13 Ansible AWS User Management 50 Databases

Centralized, automated access control across 50 databases and 30 users

Context

50 databases, 30 users, multiple environments (prod/stage), and multiple regions. Every access change was handled manually per-database with no central control — a fragmented and error-prone process.

Risk
  • Incorrect or excessive permissions going unnoticed
  • Security vulnerabilities from inconsistent access
  • Slow, manual onboarding and offboarding
What we did
  • Built a centralized user management system
  • Automated access provisioning via Ansible and AWS tooling
  • Standardized roles and permissions across all environments and regions
Centralized control across all 50 databases
Consistent and secure access management
Faster provisioning, fewer human errors
#14 MySQL Grafana Prometheus

Custom MySQL monitoring built for production-grade visibility

Context

A production MySQL system under constant load. Standard monitoring dashboards were in place, but they provided too little visibility into what actually mattered — slow queries, lock contention, and replication health.

Risk
  • Hidden performance degradation going undetected
  • Sudden incidents with no early warning
  • Slow reaction to critical issues in production
What we did
  • Built custom Grafana + Prometheus dashboards
  • Added deep visibility into slow queries, locks, and replication
  • Configured precise alerting with zero noise — only real issues
Early detection of issues
Faster response time
Stable and predictable system behavior
🚚 Transportation & Logistics

Customer #3 · Global Logistics Company

Millions of customers worldwide, a decade of historical operational data, and no analytical system capable of querying it efficiently.

€15B+
Annual revenue
#15 ClickHouse Data Warehouse 10+ years of data

Building a ClickHouse data warehouse to unlock 10 years of historical logistics data

Context

The company had 10+ years of historical operational data but no system able to query it at scale. Legacy systems were not optimized for analytics, making large dataset queries slow or impractical.

Risk
  • Historical data unusable for business decision-making
  • Slow or failed reporting impacting operations
  • Lost business insights from years of records
What we did
  • Designed and implemented a ClickHouse data warehouse from scratch
  • Structured data specifically for analytical workloads
  • Enabled efficient querying across 10+ years of records
  • Optimized storage and performance for long-term growth
10+ years of data now queryable in seconds
Centralized analytics and reporting
Historical data converted into business insight
🚛 Transportation & Logistics

Customer #4 · Global Logistics Company

One of the world's largest logistics operators with over €80 billion in annual revenue. AG Data worked with a specific department in their UK operations, advising on database architecture and performance for high-throughput internal systems.

€80B+
Annual revenue
Advisory Database Architecture Performance

Database architecture advisory for high-throughput internal logistics systems

Context

A specific department within a major global logistics company needed independent expert guidance on their database architecture. Internal teams had grown organically and the database layer had accumulated technical debt — schemas designed for earlier scale were struggling under current throughput.

Challenge
  • Legacy schema design not suited to current data volumes
  • Query performance degrading as transaction throughput grew
  • Internal team lacked dedicated DBA expertise
What we did
  • Conducted a full architectural review of the department's database layer
  • Identified indexing gaps, schema bottlenecks, and configuration issues
  • Produced a prioritised remediation roadmap with effort estimates
  • Provided hands-on support during implementation of highest-priority fixes
Clear remediation roadmap delivered
Key query bottlenecks resolved
Team equipped with best practices for ongoing maintenance
💼 ERP

Customer #5 · ERP Platform

A B2B2C ERP platform serving over one million end users through a network of business partners. Database reliability directly translates to uptime for every partner and their customers downstream.

1M+
End users
Ongoing Database Reliability Monitoring Optimisation

Database reliability and monitoring for a multi-tenant ERP platform

Context

A multi-tenant ERP platform with over one million users required consistent database reliability across all tenants. Any degradation at the database layer would surface as slow response times or errors for a broad user base spread across dozens of business partners.

Challenge
  • Multi-tenant workloads with unpredictable per-tenant query patterns
  • No dedicated DBA function within the internal team
  • Limited visibility into slow queries and lock contention
What we did
  • Implemented monitoring covering slow query detection, lock waits, and resource utilisation
  • Optimised the most impactful slow queries across the top tenants
  • Established a maintenance schedule and change control process
  • Provided on-call DBA coverage for production incidents
Improved response times across all tenants
Incidents caught proactively before user impact
Predictable maintenance without unplanned downtime
💰 Fintech

Customer #6 · Fintech Company

A fintech company running financial transaction processing on MySQL. They needed the same class of zero-downtime migration that AG Data had delivered for larger platforms — applied to their stack.

€10M
Annual revenue
#16 MySQL Zero-downtime migration Fintech

Zero-downtime MySQL migration for a live financial transaction platform

Context

A fintech company needed to migrate their MySQL database to a new environment without interrupting live transaction processing. Financial systems have zero tolerance for data inconsistency, and any downtime during a migration window would directly affect revenue and customer trust.

Risk
  • Transaction data loss or corruption during migration
  • Downtime impacting live financial operations
  • Replication lag causing inconsistency between old and new environments
What we did
  • Applied the same zero-downtime migration pattern used for larger platforms
  • Established live replication between old and new MySQL environments
  • Validated data consistency under real transaction load before cutover
  • Completed cutover with an instant rollback path available throughout
Zero downtime during migration
Zero transaction data loss
Live financial operations uninterrupted throughout
🏭 Manufacturing

Customer #7 · Manufacturing Company

A manufacturing company that had been attempting to migrate their Oracle database to the cloud for months — until a major incident took them offline for 2 days and they called AG Data.

Enterprise
Manufacturing
Emergency Oracle On-premises → Cloud Disaster Recovery

Oracle emergency recovery and cloud migration — resolved in 24 hours

Context

During a months-long self-managed migration attempt, the team accidentally deleted half of Oracle's core services. The database went down entirely, taking the business offline for 2 days. AG Data were called in to rescue and complete the migration.

Risk
  • Ongoing business disruption with no recovery timeline
  • Data loss from corrupted Oracle services
  • No clear path to the planned cloud environment
What we did
  • Revived the broken Oracle services and stabilized the instance
  • Set up the cloud infrastructure and configured all database services
  • Dumped the old data and restored it to the new environment
  • Completed the full migration and handover the next day
Oracle services restored
Full cloud migration completed in 24 hours
Zero data loss
Business back online the same day
Work with us

Ready to be the next case study?

Whether you're planning a migration, dealing with a performance issue, or want a senior DBA on retainer — we start with a free 30-minute discovery call.

Get in touch Back to homepage