A customer platform, built like infrastructure.
A streaming pipeline instead of nightly batch syncs. Deterministic replay instead of "it probably sent." One SDK, a clean event model, and a data plane you can run in your own VPC — engineered like infrastructure, because it is.
// one SDK · the events you already know origamy.identify("amara", { plan: "premium", since: "2024-11", }); origamy.track("payment.failed", { last4: "4242", attempt: 2, }); // → resolved, segmented, and in a journey // in a few milliseconds
A streaming spine, not a nightly batch.
Events move through the pipeline over NATS JetStream with exactly-once execution semantics, land in ClickHouse for analytics, and never wait for a sync window. Dead letters park in a DLQ for inspection — nothing silently drops.
Same inputs. Same result. Every time.
Every run is reproducible from stream offsets — 100% deterministic. When someone asks why a customer got that message in March, you rerun March. Debugging becomes reading, and audits become a command, not an archaeology project.
$ origamy replay --run 48211 # reading offsets 88121..88135 event payment.failed · profile amara context 14 events hydrated journey churn-rescue → email sent verify ✓ identical to production run took 0.9s · deterministic
Your VPC. Your data. One chart.
The data plane — gateway, streams, ClickHouse, identity, the lot — installs into your EKS, GKE, or AKS cluster from a single Helm chart. It reaches out to the control plane over an outbound-only tunnel; nothing inbound, nothing exposed. Your customer data never leaves your network.
Deployment guide in the docs# the whole data plane, one chart $ helm install origamy origamy/data-plane NATS · ClickHouse · Redis · Postgres ready $ origamy status gateway healthy ingest ✓ identity healthy merge ✓ delivery healthy send ✓ tunnel connected # outbound only
Watch your data arrive, in real time.
Event stream
streamingRead the docs, then come run it yourself.
Runs in our cloud or your VPC · SOC 2 Type II in progress
origamy