Comment by tantalor
1 day ago
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!
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.
> If you promise randomization
You don't. You say the order is undefined.
That isn't the point. In practice, if you provide randomness, it will be depended upon.
Why is that? Is that just bad coding habits?
1 reply →
You can randomly not randomise it :)