SergioGongora
← All work

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.

  1. Step 1

    Workvivo event

    Membership or engagement change fires a webhook from Workvivo.

  2. Step 2

    Ingest & normalize

    Event is validated and mapped onto the product's own membership schema.

  3. Step 3

    Idempotent write

    Change is committed to Supabase/Postgres, safe against retries and out-of-order delivery.

  4. 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.