Selected work / Local browser demo

Portfolio demo

Webhook handling demo

Run fictional webhook scenarios to see simulated signature checks, duplicate handling, and retries. No payment, CRM, or notification service is connected.

Portfolio demoWebhook patternsRetry concepts

The scenario

What this demo explores.

A payment, order, or customer event may need to update more than one system. A real integration needs a plan for repeat deliveries, unavailable destinations, and requests that cannot be trusted.

Run a scripted scenario to see a simulated signature check, duplicate handling, retry, and outcome log. The demo does not verify a real signature or connect to payment, CRM, or notification services.

The example shows why event IDs, retry policies, and logs matter. A live implementation would need to handle them for the actual provider.

Interactive demonstration

Try the workflow.

This demo runs in your browser with fictional data and scripted results. It does not send messages or connect to external services.

Interactive portfolio demo

Simulate a payment webhook

Runs in your browser with scripted events and mock destinations. No payment, database, CRM, or notification service is connected.

1. Incoming event

Choose a scenario

payment.completed
Webhook scenario

2. Execution trace

Event handling preview

Ready to simulate
  1. Webhook receipt simulated
  2. Valid-signature scenario
  3. Event accepted in demo
  4. Idempotency check illustrated
  5. Database update simulated
  6. CRM update simulated
  7. Notification simulated
  8. Scenario complete

Run a scenario to trace a success, duplicate, retry, or rejected event.

Patterns illustrated

How a webhook handler can respond

Signature verification
A real handler verifies the sender’s signature before running business logic. This scenario uses a preset result.
Idempotency
A handler can record an event key and skip repeat actions. The duplicate scenario illustrates that branch.
Bounded retry
A handler can limit retries after a temporary failure. This scenario shows one retry.
Audit trail
The demo lists sample event IDs, outcomes, attempt counts, and fixed example times in memory.

Sample execution log

Demo event records

In-memory
EventOutcomeAttemptsSample time
evt_demo_0007Completed110:41:16
evt_demo_0003Completed110:39:04

Demo event-key store: 1 record

Demo workflow

How the example works.

WorkflowThe webhook example

A scripted event moves through simulated checks, processing, and outcome logs.

  1. 01Example eventpayment.completed
  2. 02ReceiveReceive payload
  3. 03VerifySimulated signature check
  4. 04ProtectIdempotency key
  5. 05Next stepSimulated action
  6. 06OutcomeLocal log and retry

Design considerations

The logic behind the example.

The demo shows inputs, rule checks, and result states. The notes below distinguish the local example from requirements for a real integration.

01

Source-specific delivery model

A real build would start with the source platform’s documentation, authentication rules, and expected delivery behavior.

02

Signature verification

A production endpoint should confirm that a payload is authentic before it performs any business action.

03

Duplicate-event handling

A production handler would need durable event records and provider-aware processing to reduce duplicate effects.

04

Retry-aware processing

Temporary downstream failures should be separated from permanent errors and retried deliberately.

05

Clear provider boundaries

A real implementation needs explicit responsibilities for data, notifications, and any third-party provider.

06

Outcome visibility

Useful event records make it possible to inspect an individual handoff and diagnose a failure.

Reliability considerations

What happens when something goes wrong?

01

Authenticate before processing

The invalid-signature scenario stops at a simulated check. A live endpoint would need cryptographic verification of the actual payload.

02

Make duplicate delivery harmless

The repeat-event scenario shows how duplicate handling could avoid repeated actions. A live integration would need durable storage and provider-specific guarantees.

03

Retry only what can recover

The temporary-failure scenario shows a scripted retry. A real retry policy would distinguish recoverable failures from invalid requests.

04

Keep an audit trail

The demo displays fixed example times and scripted outcomes. Persistent, access-controlled logs would be needed for a live service.

Beyond the demo

What a live integration would need.

A live integration would require provider-specific development, account access, secure data handling, and tests for failure and recovery. These requirements are not implemented by the browser demo.

  • Secret management, source-specific signature verification, and endpoint rate controls
  • Durable idempotency storage and a queue for asynchronous or long-running work
  • Provider-aware retry policies, backoff, alerts, and a dead-letter review path
  • Role-appropriate audit logging, monitoring, and dashboards for operational visibility
Concepts demonstrated
  • Webhook scenarios
  • Duplicate-event scenario
  • Retry preview
  • Outcome display

Interested in the code or a website project?

Get in touch to discuss a website or a hiring opportunity.

Contact me