Rebasely Beta: data may be purged

examplesstorefront Public

Concepts

How this repository is built and why: its architecture and its notes, from the .rebasely folder, for people and agents.

Architecture

From .rebasely/architecture/system.yaml at f6403bb: 3 components, 2 connections in this view.

What browsing the shop touches, and where product images come from.

Select a component to see what it talks to.

db

The storefront database: products, carts, orders and their lines. Every schema change is a numbered file in migrations/, applied with wrangler d1 migrations apply.

Owns
migrations/**
Binding
DB
Used by
storefront-api (d1)

Markdown in .rebasely/kb/. Add a folder or a file there to add a note.

storefront knowledge base

How the storefront works and why it is built this way. Start with the concept notes, then read the decisions for the reasoning behind them. The architecture tab has the map of Workers and storage these notes refer to.

Concepts

  • Catalog: products, prices and stock, and how the merchant edits them.
  • Carts: what a cart holds and the limits it enforces.
  • Product images: how images get into R2 and back out.
  • Checkout: how a cart becomes an order, and how stock and payment are handled.
  • The payment webhook: how Stripe's events mark orders paid or cancelled.
  • Order events: the queue that announces paid and cancelled orders.
  • Fulfilment: how paid orders become shipments at the warehouse.

Decisions

Guides

Components

  • 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)
  • db D1 database

    The storefront database: products, carts, orders and their lines. Every schema change is a numbered file in migrations/, applied with wrangler d1 migrations apply.

    Owns
    migrations/**
    Binding
    DB
    Used by
    storefront-api (d1)
  • images R2 bucket

    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.

    Binding
    IMAGES
    Used by
    storefront-api (r2)