page:blueprints:restaurants:order tracking:next js

Restaurants: Order Tracking Using Next.js

A order tracking blueprint for restaurants built with Next.js on Ample. Domain schema:

Public information: menu with allergens and prices, locations, hours and reservations contact, catering information.
Kept out of scope until handling is reviewed: customer contact and payment details, staff schedules. Allergen information must be kept accurate by the operator; nothing here validates food-safety claims.

Technical basis verified on Next.js: an optimistic version check and an event row written in the same transaction, a stale update rejected, and a history query over the application-owned events (history=2 conflict=rejected).

Representative Queries

Workflow Steps

  1. Model the restaurants domain: Create the tables menu_items, stock_movements, orders, order_lines, events. The menu as a SKU catalog lives in menu_items; keep the sensitive classes (customer contact and payment details, staff schedules) out of this schema.
  2. Workflow step 1:
    Model orders with explicit status transitions and order lines.
  3. Workflow step 2:
    Apply status changes transactionally and record an event per change.
  4. Workflow step 3:
    Expose status history to authorized callers only.
  5. Workflow step 4:
    Deploy and verify history and conflict rejection.
  6. Deploy:
    Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
    ample deploy . --name  --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...
    
  7. Verify:
    Run the pattern self-test(s) from the example (/p/transactional-workflows) and your own acceptance checks for the restaurants workflow.
    ample logs  --kind build
    

Cost Estimate

Limitations

Next Actions

Example