Unpleasant, but comes with the territory (I don’t like it, when it’s done to me).
That said, I’m not sure that kind of scolding is particularly effective, either.
A software developer's primary job is to develop software for their users, not to comply with a third party distributor that repackages their software.
Really the whole raison d'etre of debian is move at this pace to prioritize stability/compatibility. If you don't like that philosophy there are other distros but a package maintainer's primary job is to repackage software for that distro (which presumably users have chosen for a reason), not comply with upstream.
Distributed systems with files as a communication medium are much more complex than programmers think with far more failure modes than they can imagine.
Like… this one, that took out a cloud for hours!
I think the communications piece depends on what other systems you have around you to build on, its unlikely this planner/executor is completely freestanding. Some companies have large distributed filesystems with well known/tested semantics, schedulers that launch jobs when files appear, they might have ~free access to a database with strict serializability where they can store a serialized version of the plan, etc.
for a large system, it's in practice very nice to split up things like that - you have one bit of software that just reads a bunch of data and then emits a plan, and then another thing that just gets given a plan and executes it.
this is easier to test (you're just dealing with producing one data structure and consuming one data structure, the planner doesn't even try to mutate anything), it's easier to restrict permissions (one side only needs read access to the world!), it's easier to do upgrades (neither side depends on the other existing or even being in the same language), it's safer to operate (the planner is disposable, it can crash or be killed at any time with no problem except update latency), it's easier to comprehend (humans can examine the planner output which contains the entire state of the plan), it's easier to recover from weird states (you can in extremis hack the plan) etc etc. these are all things you appreciate more and more and your system gets bigger and more complicated.
> If it was one thing, wouldn't this race condition have been much more clear to the people working on it?
no
> Is this caused by the explosion of complexity due to the over use of the microservice architecture?
no
it's extremely easy to second-guess the way other people decompose their services since randoms online can't see any of the actual complexity or any of the details and so can easily suggest it would be better if it was different, without having to worry about any of the downsides of the imagined alternative solution.
The Oxide and Friends folks covered an update system they built that is similarly split and they cite a number of the same benefits as you: https://oxide-and-friends.transistor.fm/episodes/systems-sof...
If the only way I interact with a service is a single app then I want that app to blend into my phone. I don't care if the Uber app on Android and iOS are the same, I only see one of them. If I have to use a service on many different platforms, I sometimes prefer having a consistent design language, e.g. I like that Slack has a consistent sidebar interface everywhere. I want to go from the browser to tablet to phone and not have anything in a different spot.
UB is really about the observable behavior of the abstract machine which is limited to the reads/writes to volatile data and I/O library calls [1]
[1] http://open-std.org/jtc1/sc22/open/n2356/intro.html
Edit: to clarify the example
For example, their part to upgrade to an Ryzen HX 370 costs $1050.[0]
You can find a brand new laptop with an Ryzen HX 370, 3k 120hz OLED display, 32GB of RAM, 1TB drive for $1050 on sale.[0]
Framework sell their 16" laptop with the RTX 5070 for $2,449.00. Meanwhile, you can get the same CPU, display, GPU for half the price at $1200 on sale.[2]
[0]https://frame.work/products/laptop16-mainboard-amd-ai300?v=F...
[1]https://slickdeals.net/f/18576667-asus-vivobook-s-15-15-6-3k...
[2]https://slickdeals.net/f/18592141-gigabyte-aero-x16-16-qhd-1...
The linked gigabyte seems like maybe a good deal as well but that's also not the Ryzen 9, it's a 7. Some people (mine included) also have strong opinions on the look/quality of the case and their preferences might lean more towards FW than the linked gigabyte's glowing green look.