Circuit: A Minimal Distributed Programmatic OS written in Go
gocircuit.github.io
gocircuit.github.io
On the page they think comparable systems to Circuit are CoreOS, and Consul and Mesosphere.
What I'm trying to say is this: are not all of these "linux installed" with some additional stuff thus making them an operative system (distro is it??
RC4 is WEBSCALE!
Well, and insecure.
https://github.com/gocircuit/circuit
I too am having a hard time trying to figure out exactly where circuit fits vs. other technology.
It wasn't immediately clear to me if circuit launches the apps, or if it can start new instances if the current ones fail, or if it can grow the cluster if demand is the current utilization is too high, or what.
How does this help me vs. writing a script in (the shell, some other orchestration tool, etc)?
How much of the configuration does it handle? Does it replace etcd?
Those are questions I could ideally answer myself by exploring the documentation links on the main page. Where / how does it store its own state?
Edit: There is a comparison with Consul on the wiki:
https://github.com/gocircuit/circuit/wiki/Circuit-vs.-Consul
The general idea being that it creates a virtual operating system across multiple physical or virtual "hosts" and allocates application stacks (like containers, maybe) compute/memory/storage as required. It ideally handles fault tolerance and load balancing gracefully too.
https://docs.google.com/document/d/16Y4IsnNRCN43Mx0NZc5YXZLo...
It seems like a language like Rust with safe memory management and no GC pauses is better suited to writing a kernel. I know the two languages aren't really competing in the same space or for writing the same types of systems, but they are both gaining momentum at about the same time, so the comparison is a little inevitable.
When I read the document, start a process in circuit is equal to start a process on a individual host. So how circuit make sure this process which run on a individual host could not fail?
But if the fail mean the whole circuit cluster could not fail, as I now, CoreOS, Mesos, Kubernetes also could not fail.
"Clients dial into [any] circuit server in order to interact with the entire system. All [circuit] servers are equal citizens in every respect and, in particular, any one can be used as a choice for dial-in."
However, the example diagrams I've seen, include services which aren't masterless or even multi-master, so the app/system the circuit cluster supports will surely fail in some way.
This sounds like it will cause exciting behavior under a network partition...