Post #3788882
2026-07-13 15:34 UTC
@david_chisnall@infosec.exchange I have the impression Spring's solution rests on "doors" being synchronous. If I designed a microkernel it would be strictly asynchronous: all cross-domain invocations "just" queue a message and the *only* blocking operation is "wait for next message". Backpressure is achieved by charging senders for all messages in flight. I *think* this environment could handle priority inheritance by tracking the task priorities of all unacknowledged messages.
Replies (1)
-
@david_chisnall@infosec.exchange 2026-07-13 16:24
@zwol@masto.hackers.town Asynchronous brings its own problems. Priority inheritance is hard to propagate at any time other than 'this queue us full' time, so you will end up in bursty situations. Getting low latency is painful (high throughput is relatively easy). If you want to expose remote services to other languages, you are probably in a better state now than 20 years ago because a lot have some notion of async, but most code wants to operate with synchronous APIs. And handling errors becomes really exciting: everything now needs to be a continuation that takes a failure and a success case.