Building a Rating Engine
A retrospective of a private logistics rating engine: the original PHP design, model changes, performance investigations and the Go port, with the code and measurements behind the decisions. Dates set the reading order, not when the work happened.
- How a Shipping Quote Gets Its Price
- Not Every Pricing Rule Belongs in a Formula
- A Valid Pricing Row Can Still Be Wrong
- The Engine Prices Parcels, Not Copies
- One Parcel Doesn't Have One Pricing Weight
- The Order of Charges Changes the Price
- Compile Published Rules Before the Quote Arrives
- Index Tariffs Without Losing Charges
- A Cache Hit Still Has a Payload
- Is Your Benchmark Doing New Work?
- When the Framework Sets the Latency Floor
- The Migration Plan Was Solving the Wrong Problem
- A PHP Test File Isn't One Migration Case
- A Rewrite Can Change Data Without Changing the Price
- Retire the Browser, Keep the Test Runner
- Testing the Go Port Against PHP