Vivek Yadav, an engineering manager at the payment company Stripe, speaks with host Adi Narayan about building regression testing for microservices. Drawing on his work estimating network costs for card payments, Vivek explains why unit and integration tests fall short when a single transaction’s cost can depend on 100+ parameters across card networks, countries, and merchant types. He describes Stripe’s approach: structuring services so that core logic is stateless and separated from I/O, then wrapping that logic in an Apache Spark job that replays historical transactions from cold storage to compare old versus new outputs at a granular, per-transaction level. This allows Stripe to validate major migrations with far more confidence and speed than a traditional shadow-rollout, and it now doubles as a tool for assessing network rule changes, debugging incidents, and even showing customers how a pricing change will affect their costs. The episode closes by noting the same pattern applies wherever AI-driven code changes need fast, reliable evals.
Brought to you by IEEE Computer Society and IEEE Software magazine.
Show Notes
Related Episodes
- SE Radio 595: Llewelyn Falco on Approval Testing
- SE Radio 685: Will Wilson on Deterministic Simulation Testing
- SE Radio 632: Goran Petrovic on Mutation Testing at Google
- SE Radio 164: Agile Testing with Lisa Crispin
- SE Radio 366: Test Automation with Arnon Axelrod
- SE Radio 498: James Socol on Continuous Integration and Continuous Delivery (CICD)
- SE Radio 370: Chris Richardson on Microservice Patterns
- SE Radio 213: James Lewis on Microservices
- SE Radio 495: Vaughn Vernon on Strategic Monoliths and Microservices
- SE Radio 351: Bernd Rücker on Orchestrating Microservices with Workflow Management
Articles and Resources
- Stripe blog: Scaling up your microservice testing with Apache Spark – part 1
- Stripe blog: Scaling up your microservice testing with Apache Spark – part 2
- Apache Spark
- List of popular Apache spark packages



