Yielding with Asynchronous Methods

It’s been two weeks since we released the CTP on DevLabs. Thousands of people have downloaded it, tried it out, and many have sent us their feedback – thanks for all your input! In the coming weeks we will be releasing a new build that will contain some bug fixes and a few suggested improvements….


The Mechanics of Messaging in Axum

This article is in response to some great commentary from someone writing under the screen name “sylvan” over on the Channel 9 site: This is pretty cool, but I think the semantics are overly complicated. I couldn’t say that I know of a better way of doing it off hand, but I feel that there…


The First Axum Bits Are Now Available

  It gives me great pleasure to announce the availability of our Axum technology preview at the MSDN DevLabs site. I have been working on this project off and on for several years, and for the last 18 months or so, I’ve had good company from Artur Laksberg and Josh Phillips. It has been a long…


More on Immutability

The subject of immutability sparks intense interest among the people who follow our blog, as is evident from the comments to the recent post by Niklas. Naturally, inside our team, a lot of thinking goes into making parallelism safe, and the ideas about restricted types play a major role in that. The work in this…



We rarely speak of parallelism when discussing Axum, because you very rarely think about it when designing or writing an Axum application. Instead, you write a bunch of components which are all single-threaded and have them send messages to each other asynchronously; efficient use of parallel hardware comes from running many Axum agents simultaneously. In…


Empty / Full Storage

Axum has a couple of storage modifiers not found in most other languages (although several languages incorporate futures and / or promises, similar concepts). Axum has three modifiers that are useful mostly with concurrent algorithms, for synchronization between agents within a domain or between interleave branches within an agent. For inter-domain synchronization, channels remain the…