A few weeks ago I wrote about the importance of being stateful. So you can imagine that I’m quite excited about the Public Preview of Orleans that Microsoft announced at Build 2014.
Orleans is a new cloud programming model that was designed for use in the cloud, and that has been used extensively in Microsoft Azure.
Orleans was created to solve the problem of building high performance concurrent applications that run on the cloud. It really shines when it’s used in social graphs, mobile backends, Internet of things and with real-time analytics. Of course, the use of Orleans isn’t limited to these specific scenarios. In fact Orleans lends itself pretty well for applications who work with free-form relationships, who require high throughput and where low-latency is crucial. Furthermore, it’s a great fit for solutions where data and Actors naturally partitions themselves into manageable pieces.
Building cloud-based solutions that scale out to meet the workload demand is becoming the new way of doing things. Forget about 3-tier architectures, they just doesn’t scale. Because stateless solutions need to rebuild their internal state for each call, they can generate tremendous pressure on our data stores. Consequently, this generates back pressure that bubbles up through the layers and reaches out to the edge. Back pressure then translates into unavailable services and is often the cause of downtime for Cloud Services. A great example of back pressure in action, is the all too familiar Fail Whale that was used during periods of downtime by Twitter.com.
The situation I described above probably isn’t new to most of us. We actually experience these interesting moments as developers and sometimes as consumers and believe me its irritating for everyone. Continue Reading…