Skip to Main Content
Talk Intermediate MIT License(software) First Talk

Deja: Record, Replay, and prove your change didn't break anything

Proposal status is Rejected
Session Description

If your service were a pure function, f(x) → y, regression testing would be simple: does f'(x) equal f(x)?

In most scenarios your services are impure functions f(x, world) → (y, world'): it reads from the world, a clock, a database, a remote service and may leave it different from how it found it. The world is an implicit input; world' is what that world looks like afterwards.

Deja is a rust-library that provides the primitives for you to record every interaction a real service execution makes with the world and replays that exact world against the changed code, then asks: does f'(x, world) produce the same (y, world')?
The library provides the following checks:

  • did the outputs change?

  • did the mutations written back to state change — rows corrupted, cache entries skipped, queue messages dropped?

  • did the code ask its dependencies different questions — same call, different arguments?

  • did the code cross its boundaries in a different order?

Each of these catches a class of regression a hand-written mock cannot cover.

The recording feature is also useful on its own. It captures real data shapes, real edge cases, sequences which is harder to create manually. You can also use it to seed a staging environment with production state or reconstruct the exact conditions of an incident.

Key Takeaways
  • Gaps of a traditional regression test suite, and what more can we do?

  • How Deja enables reliability and velocity for popular OSS like Hyperswitch.

  • Tradeoffs in capturing and modeling the “world”.

References

Session Categories

Introducing a FOSS project or a new version of a popular project
Engineering practice - productivity, debugging
Other
Testing Framework
Talk License: MIT License(software)

Which track are you applying for?

Cloud & DevOps

Speakers

Uzair Khan
Uzair Khan Software Engineer | Juspay
  • Author of Deja: an open-source record-and-replay regression testing library.

  • Active contributor to hyperswitch-prism: Authentication infrastructure, connector integration, and CI pipeline optimizations (2025–present)

  • Contributor to Hyperswitch: Prism integration features including UPI integration and emergency kill switch, centralized request ID management, and AWS KMS improvements (2025)

  • Google Summer of Code 2024: built the create-webpack-app scaffolding package for the Webpack build tool.