Back to Projects
Solutions Architecture2021
DEPLOYMENT STATUS: SUCCESS

SAAS INFRASTRUCTURE MIGRATION

Migrating a heavy monolithic platform to AWS Serverless components to drastically reduce costs.

Lighthouse Score

94

Uptime

99.95%

Avg Latency

95ms

Status

LIVE

01

PROJECT OVERVIEW

Migrating a heavy monolithic platform to AWS Serverless components to drastically reduce costs.

This project showcases our expertise in solutions architecture, delivering a robust solution that exceeds industry standards for performance, reliability, and maintainability.

02

THE CHALLENGE

PROBLEM

A B2B SaaS company was running a monolithic Rails app on 24 always-on EC2 instances at $18K/month, with utilization averaging just 12% outside business hours.

OUTCOME

Migrated core services to Lambda + DynamoDB with step-function orchestration — infrastructure costs fell to $3.2K/month (82% reduction) with better burst capacity than before.

03

ARCHITECTURE & CODE

invoice-processor.py
Python
1# Idempotent Lambda handler — safe to retry on failure
2import boto3
3from aws_lambda_powertools import Logger, Tracer
4from aws_lambda_powertools.utilities.idempotency import (
5 DynamoDBPersistenceLayer,
6 idempotent,
7)
8
9logger = Logger()
10tracer = Tracer()
11persistence = DynamoDBPersistenceLayer(table_name="idempotency-store")
12
13@idempotent(persistence_store=persistence)
14@tracer.capture_lambda_handler
15@logger.inject_lambda_context
16def handler(event: dict, context) -> dict:
17 invoice_id = event["invoice_id"]
18 logger.info("Processing invoice", invoice_id=invoice_id)
19
20 result = process_invoice(invoice_id)
21
22 return {"statusCode": 200, "body": result}
04

DEPLOYMENT PIPELINE

ci/cd — deploy log
6 PASSED
1 HIGHLIGHT
BUILD COMPLETE
01▸ Extracting service boundaries from monolith...
02✓ 7 bounded contexts identified and documented
03▸ Running Python Lambda unit tests...
04✓ pytest passed — 228 tests, 0 failures, 0 warnings
05▸ Deploying via AWS SAM (staging)...
06✓ 18 Lambda functions deployed — cold start P99: 310ms
07✓ DynamoDB tables created — on-demand billing mode
08▸ Running integration test suite against staging...
09✓ All 42 API contract tests passed
10▸ Traffic migration (10% → 50% → 100% over 72h)...
11✓ 100% traffic on serverless — error rate: 0.002%
12! Cost report: $3,240/mo vs previous $18,000/mo — Lambda cold start P99: 310ms ✓
05

PERFORMANCE AUDIT

lighthouse — performance report
94
LIGHTHOUSE PERFORMANCE
EXCELLENT — DEPLOY APPROVED
CORE WEB VITALS
LCP — Largest Contentful PaintTime until the largest element is rendered
1.6sGOOD
FID — First Input DelayResponsiveness to first user interaction
14msGOOD
CLS — Cumulative Layout ShiftVisual stability during page load
0.02GOOD
TTFB — Time to First ByteServer response time to first byte
140msGOOD
TECHNOLOGY STACK
AWS LambdaDynamoDBAPI GatewayPython
INTERESTED?

Let's discuss how we can build something similar for your organization.