Skip to content

Circo-dev/Circo

Repository files navigation

Circo

Lifecycle CI Documentation

A fast, scalable and extensible actor system.

  • Fast: Up to 630 million msg/sec on a single node 1. 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 (See the paper).

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!

Published Papers

Footnotes

  1. Measured on an AWS C6g 16xlarge instance, 64 Graviton2 Arm core. See maxthroughput.jl