← Noesa

Store, understood

For Developers, integrators and product people who will build, operate or answer for a store, and who keep finding that the interesting bugs live between the parts rather than inside them. · 16 days · Tech

A 16-day course
One short lesson a day · go at your own pace
Log in to start
The days
  1. 0Build the smallest store that breaksBy the end you can create `store.db` with products, prices and one order, and show that the order remembers a price the catalogue has forgotten.
  2. 1Separate what you sell from what you chargeBy the end you can explain why a product, its code and its price are three separate things, and query a catalogue where one product carries two prices.
  3. 2Treat availability as a promiseBy the end you can explain why a stock count is not an answer to "can I sell this", and hold stock for an order without overselling.
  4. 3Own the cart as stateBy the end you can store a cart as rows keyed to a shopper, add the same item twice without duplicating it, and say what a cart is not.
  5. 4Show a price you can honourBy the end you can serve a catalogue from a cache and re-check the price at the moment of acceptance, and explain why those are two different reads.
  6. 5Freeze the order at the moment of acceptanceBy the end you can write the checkout step that turns a cart into an order, and name every value it must copy rather than reference.
  7. 6Ask for tax, do not invent itBy the end you can list the facts a store must supply for tax to be determined, and store the resulting tax on the order as its own line.
  8. 7Separate authorised money from captured moneyBy the end you can model a payment through authorised, captured and settled, and explain why an order may be paid and unfunded at the same time.
  9. 8Give the order one state machineBy the end you can express an order's life as a small set of named states with legal transitions, and reject an illegal one in the database.
  10. 9Deliver the thing you promisedBy the end you can separate what the buyer is owed from what they were billed, and record fulfilment as its own fact.
  11. 10Reconcile the store against the moneyBy the end you can produce the three-way comparison between orders, payments and fulfilments, and name what each kind of mismatch means.
  12. 11Weigh a fraud rule against the customers it blocksBy the end you can compute how many good orders a fraud rule blocks per bad one it catches, and explain why a highly accurate rule can still be a bad one.
  13. 12Return the goods and the money togetherBy the end you can record a partial return that reverses the right amount of tax, and explain why a refund is not a negative sale.
  14. 13Refuse the price the client sends youBy the end you can demonstrate a price-tampering attempt and block it by deriving every money figure on the server.
  15. 14Report conversion without flattering itBy the end you can state the denominator behind a conversion rate and show how two defensible definitions produce different numbers.
  16. 15Follow one order across six disciplinesBy the end you can trace a single order through catalogue, checkout, tax, payment, fulfilment and reporting, naming which discipline owns each step and what breaks at each handoff.