2
1 Comment

What isn’t explicitly true will eventually become explicitly false.

learned something building a real booking system in production.

A critical path should never depend on implicit state.

Here’s what I mean.

As long as a user is filling a form, losing state is fine.
Reload the page, start over. No harm done.

But the moment there’s:

  • money

  • availability

  • inventory

  • real users involved

everything changes.

If a user clicks “Book” and:

  • the page reloads

  • the browser crashes

  • localStorage is wiped

  • Stripe redirects fail

the system must still know the truth.

Not because the frontend remembers it.
But because the backend explicitly does.

Pending reservations.
Clear statuses.
Server-side source of truth.
Time-bound expiration.

A simple mental model I now use:

Form state → can be lost
Commit action → must be persisted
Payment flow → must be resumable or expire cleanly

No “normally it already happened”.
No “the UI should still have it”.

My test now is simple:

If the frontend disappears, does the system still know exactly where it is?

If not, it’s implicit state.
And implicit state eventually lies.

This mindset saved me bugs.
But more importantly, it saved me mental energy.

Curious how others here draw the line between acceptable state loss and critical guarantees.

posted toAvatar for product ¡HolaOlas!
¡HolaOlas!
  1. 1

    The interesting part is that the frontend disappearing is really a test of whether the product has an actual source of truth or just a convincing illusion of one. That distinction gets especially important once the system has to guarantee money, inventory, or availability.