Last week Microsoft published on DevLabs a .NET language for building parallel applications, called Axum, and earlier known as Maestro. This new language is build on the architecture of the web, on the principles of isolation, message-passing, fault-tolerance, loose-coupling. It is said to have a more succinct syntax than Erlang, and have the isolation advantage over MPI, CCR and Asynchronous Agents.
Isolation is key in this architecture and is achieved with:
- domains, that limits the runtime scope of data to its compile-time scope (objects don’t escape domains)
- agents, active components that provide access to domains, and live in a thread of their own, different that the callers; their methods are not accessible outside;
- channels, are the mean to communicate with agents; they are established by the runtime, when agents are created. The most important parts of the channels are the ports (input or output), that can be viewed as queues in which data is placed.
Here are more readings about these topics here:
You can find more about Axum at: