Two years of read splitting, and the twelfth place that had to read the primary.
// the pattern that keeps this manageable
final class OrderRepository
{
public function find(OrderId $id): ?Order // replica
public function findAuthoritative(OrderId $id): ?Order // primary
}
// twelve call sites use the second. each one is a
// deliberate choice with a comment saying why.
Naming the two reads differently is what keeps the count knowable — twelve is a number somebody can review, and a driver heuristic routing by statement type is a number nobody can. The twelfth was an admin approval screen added in September, found by the read-after-write drill rather than by review, which is the pattern every time.