1
votes

What is the justifications for the service fabric reliable collections. The team I am working with is replacing the stateful services with stateless and removing the state to a redis server. As far as I understood was service fabric should eliminate the unnecassary talk and be fast at solving issues. I guess the persistance state parameter in service fabric and the debugging is so hard that the team gave up on it.

How should we approach service fabric projects

PS

I still feel that SF is the way to go as It gives us the 1000 server Virtual Machine scale sets architecture.

1
It is all about keeping the data closest to where it is used. In the case of stateful services it is to avoid having potential network calls to a persistency layer (be it redis, a database or something else).Peter Bons
PS.: the fact that it gives you large scale possibilities should not be the only reason to use ASF. Web Apps can scale very well as well and nearly nobody never will need a SF cluster of 1000 machines, unless you have a very big solution. But then, given your statements about the team one might wonder if they will be up to the task. If you do not feel comfortable using ASF you should not use it or invest in getting to know it really well.Peter Bons
I am not sure why the question was down rated. It is very valid question. I had the same.Ashish

1 Answers

4
votes

Reliable collections are fantastic if

  • You have data that needs to be persistent
  • Highly available across multiple nodes
  • Be as close as possible to the application code (and hence blazing fast)
  • Can be updated seamlessly in one node and replicated across nodes
  • Allows programmers the ease of programming with dictionaries and queues without them having to learn another caching mechanism

Reliable collections are a brilliant solution if all the above set of features are needed. Individual points can be achieved by other means but getting all of it together needs some heavy lifting and thought/experience.

Making all services stateless will make the individual services fast, but they still need to read and write to redis which is another executable to maintain and make highly available.