Invariant
Checks that Stripe/Razorpay webhook handlers leave your database in a correct state
Invariant is an open-source test engine that checks whether your Stripe or Razorpay webhook handlers actually leave the database correct, not just whether the HTTP request went through. It ships 8+ built-in scenarios — duplicate delivery, tampered signatures, out-of-order events, server crashes mid-write, concurrent races, refund bounds — and runs them against async queue workers like BullMQ, Temporal, Celery, or Sidekiq in under 10 seconds. To use it, your app exposes a small /api/db-state probe endpoint that Invariant queries to verify business post-conditions were met. It's explicitly not a replacement for stripe trigger or error monitoring like Datadog/Sentry — those check delivery and exceptions, not database correctness.

What holds up
- +8+ built-in scenarios cover real payment bugs: duplicate delivery, tampered signatures, race conditions
- +Checks async queue workers too — BullMQ, Temporal, Celery, and Sidekiq — not just synchronous handlers
- +Open source and runs in under 10 seconds, so it fits into a normal test or CI loop
Mind the limits
- −Requires adding a /api/db-state probe endpoint to your app, and remembering to block it in production
- −Only covers Stripe and Razorpay — other payment providers aren't in the built-in scenario library
Featured here? Take the badge
Put it on your site — it links back to this review. Free for every listed product, always.
<a href="https://stillworks.dev/products/p/invariant/"><img src="https://stillworks.dev/badge/invariant.svg" alt="Picked by StillWorks" width="250" height="54"></a>