Projects
· Shadow testing
Shadow Testing & Safe Rollouts
Testing new services and algorithms with real traffic, without impacting users, using shadow pipelines and comparisons.
What is shadow testing in this context?
Running the new system alongside the old one, silently.
- Traffic from production is mirrored to the new service while the existing service still serves user-visible responses.
- Outputs are stored and compared offline (or in near real-time) to detect behaviour or performance differences.
- Rollout only happens once we trust the new service based on objective metrics and comparisons.
Implementation & pipelines
Shadow flows that are practical to maintain.
- Worked with engineering to add request mirroring at the right place (gateway / load balancer / service level).
- Stored both old and new responses, normalised them and compared results on key fields and latencies.
- Built simple dashboards & reports highlighting mismatch rates, error types and latency regressions.
Rollout & decision-making
Using data, not gut feeling, to go live.
- Defined acceptable mismatch thresholds and performance envelopes jointly with product and engineering.
- Used shadow results to decide when to move from 0% to small canaries (e.g. 1–5% of live traffic).
- Kept fast rollback paths in case production behaviour differed from shadow expectations.
Impact & why it matters
Confidence to ship big backend changes more often.
- Reduced risk for large rewrites and algorithm changes by validating on production-like traffic first.
- Made trade-offs visible: cases where the new service was faster but occasionally incorrect, or vice-versa.
- Teams gained a reusable playbook for “risky but necessary” changes going forward.