← architecture rationale

Fictional portfolio exercise · local policy model

Run the decision. Inspect the evidence.

Should this search qualify for a reminder? Choose a scenario and inspect the exact input, policy decision and processing trace.

Original, AI-assisted exercise using synthetic data. It evaluates eligibility locally. It makes no Braze calls, sends no messages and does not use client records.

Abandoned-search evaluator.

Policy: known identity, current email consent, no matching booking, a two-hour delay and a 24-hour freshness window. Evaluate at the fixture’s explicit clock.

Loading the local exercise…

Policy decisions
Input fixture
Processing trace and rejected records

Inspect and reproduce.

The browser and Node tests use the same policy engine. The published result file is checked against fresh execution.

node --test lab/waypoint-demo/test.mjs
node lab/waypoint-demo/run.mjs --check

What this model leaves to production.

The event ledger exists only during one evaluation. The model does not implement a durable queue, cross-run deduplication, message delivery, device identity, warehouse integration, production throughput or a live vendor response contract. Separate mock-adapter tests exercise bounded retries and partial responses.

The business journey key is customer ID plus search ID. A transport batch ID is not a deduplication key. Identity resolution never grants consent from an anonymous profile and preserves an equally recent or newer opt-out.

Before a real release, specialists would validate platform identity semantics, source authority, scheduling, persistent idempotency, channel eligibility, cooldowns, monitoring and recovery. Read the broader architecture and rollout rationale →