:seven: on Nostr: Erlang is wonderful and I love it but I worry I know it too well now. Something ...
Erlang is wonderful and I love it but I worry I know it too well now. Something Erlang can’t promise, something that has existed as a regretful constraint on the system basically since JAM, is that the scheduler cannot promise deterministic spawn-then-trap-first-thing behaviour across multiple worker threads.
It’s not perfect but I can promise that, at a very slight performance overhead that I kinda have to spend anyway: I need to run a single slice of the process’ budget to make it provably alive for determinism. But everything is still faster than when I used the naive scheduler and process model, so performance everywhere else is doing enough heavy lifting to compensate.
Published at
2026-09-09 13:00:17 UTCEvent JSON
{
"id": "be2826c75bb07931a42b323e9cb5f235f03fe1ed6d412c77305b94eedaf31f17",
"pubkey": "fb594e1a7dcf278c18c7d623c5a51ec41ab62ac5cea86554d70a9c691565161b",
"created_at": 1788958817,
"kind": 1,
"tags": [
[
"proxy",
"https://dsmc.space/objects/7c4917e8-9427-4933-a945-a696002ce7dd",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://dsmc.space/objects/7c4917e8-9427-4933-a945-a696002ce7dd",
"pink.momostr"
],
[
"-"
]
],
"content": "Erlang is wonderful and I love it but I worry I know it too well now. Something Erlang can’t promise, something that has existed as a regretful constraint on the system basically since JAM, is that the scheduler cannot promise deterministic spawn-then-trap-first-thing behaviour across multiple worker threads.\r\n\r\nIt’s not perfect but I can promise that, at a very slight performance overhead that I kinda have to spend anyway: I need to run a single slice of the process’ budget to make it provably alive for determinism. But everything is still faster than when I used the naive scheduler and process model, so performance everywhere else is doing enough heavy lifting to compensate.",
"sig": "30071895910f81169a860192566b70230c1c7a6a7ccb62538296091dc3ff3c8c5ae88ca9ee226d5ab75dee9d9f5a9ce7026a8e8610d3006cb4ddf46de478b794"
}