3 ms·
There is a link in another of my comments here and because Nim is pretty open architecture you can roll your own basis for what you want (more than most languag
by cb321 6y ago
There is a link in another of my comments here and because Nim is pretty open architecture you can roll your own basis for what you want (more than most languages) such as: https://github.com/mratsim/weave https://github.com/mratsim/weave
- nivviv 6y agoI can't speak about go vs nim generally, but: Our particular design is a bunch of single-threaded apps on a message bus. Each app (network ingress/egress, data handling, relays, etc) sits on the bus, and can use async/await to do IO concurrency, but on the app level, there's no threading and no locking to observe. Each app also has a erlang-inspired supervisor task system, where each task is just a async proc kept alive. It's proven to be very robust (from the standpoint of service availability) in the face of bugs or input validation mishaps.