Event Storage

Keep webhook events forever — queryable, searchable, joinable

Stripe deletes events after 30 days. GitHub keeps deliveries for 30 days. Centrali stores the payload as a queryable record that outlives the sender's retention window.

The 30-day cliff

You integrate Stripe, GitHub, or any webhook sender into your platform. For the first month, everything works fine. Then a customer disputes a charge in month four.

Stripe — 30-day retention

Events are queryable in the Stripe Dashboard for 30 days. After that, gone. You can't trace the original request, can't replay it, can't build a historical audit trail.

GitHub — 30-day delivery history

Webhook deliveries are available for 30 days via the webhook details page. A security incident in month three? The delivery logs are already deleted.

DIY webhook system — retention is a decision you avoid

Most teams keep events as long as the database table exists. When it grows too large, you delete the old ones. Now you own a retention policy nobody documented.

We store events as records, not deliveries

Competitors keep delivery metadata — when it was sent, how many retries, did it succeed. We keep the business event itself.

AspectCompetitorsCentrali
What is keptDelivery metadata: attempt count, response status, timestampThe full event payload as a record in your collection
Retention window30 days (Stripe, GitHub) or self-managedForever, in your workspace. You control archival.
Query and searchVia the sender's dashboard (if at all)Via saved queries, full-text search, joins with your data
Reconciliation in month 4Request lost, event lost, no audit trailEvent record found, linked to your data, replay if needed

How it works

Inbound webhooks arrive at Centrali, pass signature verification, and become records in a collection. Now they're queryable, joinable, and yours forever.

1

Webhook arrives

GitHub sends a webhook event to your Centrali endpoint. Signature is verified at the HTTP layer.

2

Becomes a record

The verified payload is automatically stored as a record in your collection. Centrali tracks the original event ID, type, and timestamp.

3

Query anytime

Save a query that finds all webhook events matching a condition — 'payments over $1,000' or 'failed deployments'. Run it years later.

4

Join with your data

Link webhook events to your own records via saved queries. Match Stripe payments to your orders. Connect GitHub pushes to your deployments.

Query events like you query any other data

When a customer disputes a charge in month four, you can find the original event and every action taken in response.

// Define a saved query in the console or via API
const eventQuery = {
resource: 'stripe-events',
where: {
and: [
{ 'data.type': { eq: 'charge.dispute.created' } },
{ 'data.amount': { gte: 50000 } },
{ 'createdAt': { gte: '2026-01-01T00:00:00Z' } }
]
},
select: { fields: ['id', 'data.id', 'data.amount', 'data.reason', 'createdAt'] }
};
// Run it anytime
const disputes = await api.queryRecords('stripe-events', eventQuery);
return disputes.data;

Stored queries run over your collections. Events stored as records are queryable; events stored only in a delivery log are not.

Built for teams that need audit trails

Compliance and dispute resolution

Every external event is a record. Link it to your actions. Prove you handled it correctly or replay if needed.

Debugging production incidents

A webhook didn't fire, or fired twice. Search the full event history. Correlate with your logs. Replay the specific event to reproduce.

Long-tail analytics

What percentage of GitHub workflows fail? Which Stripe events take longest to process? Query years of history in one saved query.

Migrating off a webhook service

Stop paying for Svix or Hookdeck? Export the events, replay them into Centrali, and switch to the built-in webhook subsystem.

Trace events end-to-end

Every inbound event, record change, and outbound delivery carries a correlation ID. Follow a single webhook through the entire system.

A GitHub webhook arrives → becomes a record → triggers a function → emits an outbound webhook to your customer. One correlation ID ties them all together. Query the Event Log to see the entire chain.

How we compare

Competitors in the webhook space focus on delivery reliability. We focus on what makes the event worth keeping in the first place.

Svix and Hookdeck hold SOC 2 Type II; we do not. On reliability and compliance certifications, they are the stronger choice. We differentiate on the business event itself.

FeatureCentraliSvixHookdeck
Store event payloads long-term
Query events with saved queries
Join events with your own data
HMAC signing and retries
Delivery log and replay
SOC 2 Type II certification
Per-customer delivery dashboard

Never lose an event again

Store webhook events as queryable records that outlive the sender's retention window. Start free today.

5-minute setup. No credit card.

View the docs