Rebasely Beta: data may be purged

examples/storefront Public

Architecture

From .rebasely/architecture/system.yaml at 94db762: 7 components, 7 connections.

Architecture diagram: 7 components, 7 connections stripe-webhook to stripe (webhooks)storefront-api to db (d1)storefront-api to images (r2)storefront-api to stripe (https)storefront-api to order-events (queue)stripe-webhook to storefront-api (rpc)fulfilment to storefront-api (rpc)d1r2httpsqueuerpcwebhooksrpcstorefront-api: The public HTTP API (wrangler.jsonc, Worker storefront-api). Shoppers browse the catalog, fill carts and check out; the merchant edits products and uploads their images with the admin token. Its OrdersService entrypoint is how the other Workers change orders: it is the only Worker with the database storefront-apiWorkerstripe-webhook: Worker storefront-stripe-webhook (workers/stripe-webhook). Verifies Stripe's webhook signatures and settles the order of each PaymentIntent through OrdersService.stripe-webhookWorkerfulfilment: Worker storefront-fulfilment (workers/fulfilment). Consumes order-events, sends each paid order to the warehouse's shipments API and records the shipment through OrdersService. Failed messages retry with backoff and end in order-events-dlq after six attempts.fulfilmentWorkerdb: The storefront database: products, carts, orders and their lines. Every schema change is a numbered file in migrations/, applied with wrangler d1 migrations apply.dbD1 databaseimages: Bucket storefront-images: product images under products/<product>/<hash>.<ext>. A key is never overwritten, so every image URL can be cached for a year. Public on its custom domain (IMAGES_URL), where browsers load the images; storefront-api only writes to it.imagesR2 bucketorder-events: Queue order-events: order.paid and order.cancelled, sent by OrdersService when an order changes state. Consumed by fulfilment (queues.consumers in its wrangler.jsonc). At least once, so consumers dedupe by order id.order-eventsQueuestripe: Stripe, through the stripe npm package. storefront-api creates a PaymentIntent per order with the secret key; the shopper confirms it in the browser with the Payment Element, and Stripe reports the outcome to stripe-webhook.stripeExternal

Select a component to see what it talks to.

storefront-api

The public HTTP API (wrangler.jsonc, Worker storefront-api). Shoppers browse the catalog, fill carts and check out; the merchant edits products and uploads their images with the admin token. Its OrdersService entrypoint is how the other Workers change orders: it is the only Worker with the database binding. A cron trigger expires unpaid orders every five minutes.

Owns
src/**
Talks to
db (d1), images (r2), stripe (https), order-events (queue)
Used by
stripe-webhook (rpc), fulfilment (rpc)

Components