Typesense
Product search fields and IDs. No customer or delivery address data.
Shioja separates the customer experience you own from catalogue, pricing, delivery, wallet, and fulfilment infrastructure it operates.
Your application controls presentation, customer sessions, cart behavior, and when checkout begins. Shioja returns product and delivery data, validates checkout inputs, deducts the merchant wallet, and creates fulfilment records.
v2 list and batch reads come from a versioned compressed product catalogue cached by the API.
Typesense finds product IDs only. Results are hydrated from the same cached catalogue before they are returned.
Long product detail reads the canonical longProducts record so checkout uses current stock and product data.
BigQuery receives product analytics asynchronously. It is not in the customer request path.
The v2 address is matched against the versioned delivery catalogue.
Shioja snapshots product price, delivery fee, address, catalogue version, and pricing version for 15 minutes.
An idempotent transaction verifies ownership, expiry, stock, and wallet funds before charging once.
The order begins in PROCESSING. Status updates can be read by API and delivered to the configured merchant webhook.
Product search fields and IDs. No customer or delivery address data.
Product analytics only. It does not serve customer requests or store addresses.
Canonical products, quotes, orders, wallet records, app ownership, and delivery snapshots.
Read requests may be retried normally. Quote creation can be repeated if it fails. Order creation must always use an idempotency key: retry the same intended checkout with the same key, and use a new key only for a genuinely new order.