Introducing Circo
Circo is a fast, scalable and extensible actor system.
- Fast: Up to 630 million msg/sec on a single node [singlenode]. Up to 20 million msg/sec single threaded performance.
- Scalable: Includes a decentralized cluster manager to avoid single point of failure.
- Extensible: Built on top of a custom-made plugin system which allows inlining of plugin code into the main event loop. Multithreading is a plugin. Actor migration is a plugin. Even last-mile message delivery is a plugin. If something is not a plugin, that's a bug.
Circo also features Infoton Optimization, a physics-inspired solution to the data-locality problem. [infoton]
Circo is implemented in Julia - an incredibly fast, dynamic, yet compiled language -, and it has a JavaScript sister: Circo.js, which can run in the browser and transparently integrate into the Circo cluster. These two components form a high performance, distributed application platform.
There is a monitoring tool named "Camera Diserta" which can help to tune Circo applications and to research Infoton Optimization.
Please note that Circo is in alpha stage. It is more like a research tool at the time than a mature platform. The documentation is also far from complete. Contributions are welcome!
- singlenodeMeasured on an AWS C6g 16xlarge instance, 64 Graviton2 Arm core. See maxthroughput.jl
- infotonGo to Infoton Optimization for a description of this novel algorithm.