Idempotency for HTTP requests, queued jobs, and arbitrary operations in Laravel.
Run once. Reply forever.
// quick start
// core features
IdempotentAttach to any route. Clients send an Idempotency-Key header — duplicate requests get the cached response instantly, without touching your handler.
view documentationEnsureIdempotentPrevent queued jobs from executing more than once. Even if a job is dispatched multiple times, it runs exactly one time — safe under retry storms.
view documentationOnce::do()Wrap any arbitrary closure in Once::do() to guarantee it executes exactly once, regardless of how many times it's invoked across requests or jobs.
view documentation// roadmap
truschery/idem ships with all the building blocks for robust idempotency in Laravel. More tests and refinements are on the way.