"With concurrency, it's hard not just to write the code but to conceptualize and think about what you need to do," Somuah said.
Orleans uses the idea of "grains" and "silos"; there are grains for each player in Halo 4 and there's a grain for every game of Halo 4 that's ever been played. Silos are the execution containers that hold the grains; there's one on each node and the Orleans system handles creating more silos if they're needed to handle more players and replacing any that fail under the load. Developers tell the grains what to do, but the Orleans systems take care of creating grains, reactivating them in a different silo if there's a problem, and garbage collecting them when they're no longer in use.
This makes it much easier for the developer, Somuah explained. "You don't care which machine in the data center a grain is running on or if it fails, you just work with the grains. You don't think about how many nodes you have in the system or worry about an IP address."
He compared it to not having to care about which stick of memory inside a computer a variable was stored on when writing code.
"You don't worry about that sort of thing when you're developing locally; why would you care about it when you're developing for the cloud?"
Sign up for CIO Asia eNewsletters.