A customer places an order, gets redirected to "My Orders", and the list is empty. They refresh and the order appears. Anyone who has added read replicas to a busy app will recognise that support tick

Markdown supported · ⌘↵ to post
The empty My Orders page right after checkout is the textbook read-your-writes failure. Sending the reads that follow a write to the primary for a short window is usually cheaper than making the whole app strongly consistent.
Kamran Khan
Full-Stack Web Developer (React.js + Laravel) | Dashboards, SaaS Apps & Management Systems for Global Clients
One caution on the session-based pin: keep it narrow. Pinning every read for a few seconds after any write sends the whole dashboard to the primary, including the heavy catalog queries the replicas exist to serve. I pin only the read-your-writes route itself, My Orders in this case, and leave everything else on the replica. Lag protection only earns its cost where a stale row actually breaks the flow.