top | item 14018938

(no title)

iLoch | 9 years ago

We've been working with Orleans for a few months to build out the next iteration of our infrastructure. I have nothing but good things to say about it. One of my favourite aspects of developing with Orleans is its single-threaded nature. Because a grain can by default only process one call at a time on a single thread, it's easy to make guarantees about data consistency inside that grain regardless of how many processes are reading/writing to it at once.

The idea of a stateful grain is also really powerful and something we're harnessing extensively: if everything is a grain, all of your data is already cached in the activated grain so there's no need for a separate caching system. Additionally, any updates to the data are immediately available to the "cache" before you send it to the database. So transient data can be cached even if you're not sure you eventually want to persist the data. This allows you to do partial application of data to grains, and then eventually commit the data to storage (in the case where writing is expensive.) This of course is totally possible with more traditional architecture, but its impossibly simple in Orleans and it's hard to go back once you get to use it.

I also want to give a big thanks to the folks who are active in the Orleans Gitter channel. Honestly probably the most helpful open source community I've ever encountered. They're extremely thorough and always willing to help.

discuss

order

mamcx|9 years ago

This is intriguing, but where find more concrete information in how apply this kind of development?

I'm thinking in go with CQRS/EventSourcing and according to the parent post Actor make things easier, but how?

KirinDave|9 years ago

How close are we to getting it on Dotnet core though? It's effectively impossible to ship on Windows in most shops, as it'd take a total reworking on tooling and the introduction of a lot of expertise and the loss of Kubernetes or Mesos for management.

iLoch|9 years ago

.NET Core support is a little ways out still last time I checked, but it seems to be running at this point. IIRC, the Orleans team is working through kinks and compatibility to get it to 100% feature parity.

UK-AL|9 years ago

Kubernates for windows containers is coming.