Comment by tantalor

Comment by tantalor a day ago

6 replies

Nope. You have to remember https://www.hyrumslaw.com/

  With a sufficient number of users of an API,
  it does not matter what you promise in the contract:
  all observable behaviors of your system
  will be depended on by somebody.
If you promise randomization, then somebody will depend on that :)

And then you can never remove it!

scott_w 19 hours ago

Semi-related: this type of thing is actually covered in the Site Reliability Engineering book by Google. They highlighted a case of a system that outperformed its SLO, so people depended on it having 100% uptime. They "fixed" this by injecting errors to go closer to their SLA, forcing downstream engineers to deal with the fact that the dependent services would sometimes fail for no reason.

I know it's easier said than done everywhere, just found it to be an interesting parallel.

timewizard a day ago

> If you promise randomization

You don't. You say the order is undefined.

  • __float a day ago

    That isn't the point. In practice, if you provide randomness, it will be depended upon.

    • psnehanshu a day ago

      Why is that? Is that just bad coding habits?

      • simonask a day ago

        All of this is bad coding habits. That's why we're here.