RevRec brainstorm · Research · Extract plane

05 — Extract plane

Status: draft pointer
Job: Reliably get Chargebee facts into a raw lake with cursors and operable runs.
Does not: recognize revenue, invent OrderDetails, or run ASC 606.


Shape

SourceAdapter (Chargebee)
    → Temporal workflows / schedules (per tenant)
    → raw objects (e.g. S3 jsonl)
    → cursors (e.g. Postgres)
    → run manifest / lineage

Design home: ~/work/temporal_poc/

Doc Content
architecture.html Multi-tenant poll → lake
design-doc.html Control plane design
scaling-design.html KEDA / scale-to-zero
IMPLEMENTATION.md Build notes
BRIDGE.md Explicit: extract only; domain is RevRec Next

Stack opinion (not locked): Temporal, Python, S3 lake, PG cursors — aligns with broader RevRec Next opinions (ClickHouse on the serve side).


Contract with the domain

  1. Extract writes immutable raw + run metadata.
  2. A separate apply step (domain) reads raw / canonical events and calls the apply API (03-event-catalog.md).
  3. Extract never imports recognition policy.
  4. New sources = new SourceAdapter; same lake + apply pattern.

Day-one Chargebee adapter checklist

Entity list can be informed by ~/work/tap-chargebee — as reference, not as a requirement to stay on Singer.