Chezie
Real-time membership sync between Workvivo and Supabase.
Problem
Membership and engagement data lived in Workvivo, but the product's own logic needed that data to be current in its own database — without asking users to maintain two profiles or wait on a nightly batch job.
Role
Built the sync layer between Workvivo and the product's Supabase-backed data model: the event handling, conflict resolution, and retry logic that make two independent systems behave like one.
Stack
Architecture
A webhook-driven sync pipeline treats Workvivo events as the trigger and Supabase as the system of record for product logic, with idempotent writes so retries and out-of-order events never double-apply.
- Step 1
Workvivo event
Membership or engagement change fires a webhook from Workvivo.
- Step 2
Ingest & normalize
Event is validated and mapped onto the product's own membership schema.
- Step 3
Idempotent write
Change is committed to Supabase/Postgres, safe against retries and out-of-order delivery.
- Step 4
Downstream consumers
Product features read current membership state without knowing Workvivo exists.
Outcome
Membership state updates propagate between the two platforms in real time instead of on a batch delay, so the product's own logic is always working from current data rather than yesterday's export.