Azure Service Fabric - Book Review

On March 30, 2016 @ Microsoft Build Developer Conference, Azure Service Fabric* became Generally Available. If you are reading this, you are probably excited as well!

If you have been in the software industry for awhile, you probably know that announcing software Generally Available does not always mean that the software is ready for prime time LOL. This might not be the case with Azure Service Fabric, as Microsoft internally has been working with this tech for years before making it available (probably started as research project called Orleans).

A while back, I needed to get myself familiar with Azure Service Fabric, as it was the platform of choice for our green field project. I believe that when starting with a new platform, it is beneficial to use a relevant book as a starting point. A book, in contrast to disparate articles or blog posts, usually provides an overview in digested form. To that end, I picked up Haishi Bai’s book: “Programming Microsoft Azure Service Fabric”.

I would like to thank the author for making this resource available in a timely manner. Additionally, I felt that the book is comprehensive enough, taking into account the fast paced change in its early days (it even covers advance topics like hosting Service Fabric on a different environments and “Adaptive Complex Systems”).

Some observations I had:

  • Chapter 4, Actor Events. The author mentioned that Actor events are designed for actor-to-client communication and should not be used for actor-to-actor communication. I assume it was derived from this page. Based on my personal experience and understanding, this statement is inaccurate as this type of communication can be used between actors as well.

  • The author mentioned that actors are virtual only in Azure Service Fabric. From what I gather, this idea conceived much earlier in Microsoft research project called Orleans. I assume that much of Service Fabric was based on that research project and the actual experience with the implementation of Halo.

  • Chapter 6, Service Fabric - Services Availability. Placement constraints are not limited to boolean value only. At the moment it can be string, bool, or signed long (source)

  • Chapter 7, Scalability & Performance. In the Orchestration Bottlenecks section, the author is giving an example of use of aggregates. The theme of the example / metaphor is about voting and states (like in the USA). One small improvement opportunity here is to use a different metaphor that does not include the word “State”, as it might be ambiguous in the context of Actor state.

*Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and addresses the significant challenges in developing and managing cloud applications