the author leaves out Kotlin which adds support for coroutines on the language level and still compiles to java bytecode. These are not classic continuations because they cannot be cancelled, but they're still very useful and true fibers. There's also the Quasar library that adds fiber support to existing Java projects, but its mostly unmaintained since the maintainers were pulled in to work on Project Loom. Then the…
> This will invalidate the arguments for Erlang concurrency model. What about failure domains? As far as I'm concerned, this is the strongest reason for actor-based concurrency. I can design my architecture so that groups of processes that need to die together die together. And it's usually one or two lines of code, if any. Here's a real life example. I have a process that maintains an SSH connection to a host machin…
It would allow you to write something like:
try (var scope = FiberScope.open(Option.PROPAGATE_CANCEL)) {
var fiber1 = scope.schedule(() -> sshKeepAlive());
var fiber2 = scope.schedule(() -> trackHost());
var fiber3 = scope.schedule(() -> trackVMs());
}
With the garantee that if any fiber fails (which you bind to cancelling it), all others will be cancelled.