12 ms·
Yeah copying large amounts of data from one process to another (especially across nodes) is slow and expensive. We have to take care to not do that where possib
by yuliyp 3y ago
Yeah copying large amounts of data from one process to another (especially across nodes) is slow and expensive. We have to take care to not do that where possible. We've had issues from accidentally passing too much data to worker processes, but those are thankfully pretty rare because that is a pattern we try to avoid (having a single process per actor in the system is nicer for a variety of reasons).
Regarding cluster size: We haven't noticed too many problems with it, but that's because our communication is usually not a full mesh, but rather more like bipartite graphs (guilds talk to sessions, but not to other guilds, for instance).
Definitely other languages like C++, Rust, Go, or Java could solve similar problems, but we haven't had a reason to rewrite it all. Migrating only some types of actors in the systems to another language would mean not being able to use message passing / monitors and result in a lot of complexity because of it.