Product catalog — row + embedding + FTS + supplier edge
One product write places the row, a 768d image-text embedding, the search-indexed body, and the supplier-relation edge. One WAL frame, one fsync, all-or-nothing.
Without OriginChain: Postgres for the row, Pinecone for the vector, Elasticsearch for full-text, Neo4j for the supplier edge. Four systems, four bearers, four failure modes, no atomicity across them.
curl -X POST "$ENGINE/v1/tenants/$T/rows/shop.products" \
-H "Authorization: Bearer $OC_TOKEN" \
-H "Content-Type: application/json" \
-d @- <<'JSON'
{
"id": "sku-9281",
"name": "Trailblazer 2",
"description": "All-terrain running shoe with carbon-plate forefoot.",
"price": 129.0,
"category": "running-shoes",
"embedding": [0.0124, -0.0883, 0.0451, 0.0192, 0.0772, -0.0341, 0.0118, -0.0204],
"fts": {
"description": "Trailblazer 2 all-terrain running shoe carbon plate forefoot"
},
"edges": [
{ "rel": "supplied_by", "dst": "supplier.acme-shoes" }
]
}
JSON {
"inserted": 1,
"indexed_vectors": 1,
"indexed_fts_fields": 1,
"edges_written": 1,
"lsn": 41827811,
"elapsed_ms": 6
}