Answered by:
Service with dedicated local database

Question
-
We are reengineering an application currently consisting of eight or so modules. We’d like to take the microservices approach using Service Fabric. If we are to deploy the application only to the cloud this could be done with Service Fabric and DocumentDB as the data storage. However, some customers insist on running the application on premise. As DocumentDB is not (yet) available for on-premise installation, we would like to use Service Fabric with MongoDB which would work in the cloud and on premise.
How can MongoDB be incorporated into a stateless service? Do we have to rent an Azure VM and install MongoDB there and access it over the network? Is that efficient? With microservices each microservice is meant to be responsible for its own data. Therefore, I expect each microservice to own its own local database. Can this be achieved by Service Fabric?
Thanks a lot.
Tuesday, May 17, 2016 2:03 PM
Answers
-
I see that you have read the packaging MongoDb as a guest executable as describe herehttps://azure.microsoft.com/en-us/documentation/articles/service-fabric-deploy-multiple-apps/ although note that this sample is not durable in the event of failures.
Is there any reason that you cannot use ReliableDictionaries as the state store for both Azure and on-premise? These are replicated and highly available.
Calling from on-premise to Azure is possible, it depends if other aspects get in the way such as network connectivity. The other choice is to deploy databases on premise and manage these independent of Service Fabric.Lead Program Manager, Microsoft
- Proposed as answer by Ed Price - MSFTMicrosoft employee Wednesday, April 26, 2017 8:04 AM
- Marked as answer by Ed Price - MSFTMicrosoft employee Wednesday, October 4, 2017 2:25 AM
Wednesday, May 25, 2016 7:11 AM
All replies
-
I see that you have read the packaging MongoDb as a guest executable as describe herehttps://azure.microsoft.com/en-us/documentation/articles/service-fabric-deploy-multiple-apps/ although note that this sample is not durable in the event of failures.
Is there any reason that you cannot use ReliableDictionaries as the state store for both Azure and on-premise? These are replicated and highly available.
Calling from on-premise to Azure is possible, it depends if other aspects get in the way such as network connectivity. The other choice is to deploy databases on premise and manage these independent of Service Fabric.Lead Program Manager, Microsoft
- Proposed as answer by Ed Price - MSFTMicrosoft employee Wednesday, April 26, 2017 8:04 AM
- Marked as answer by Ed Price - MSFTMicrosoft employee Wednesday, October 4, 2017 2:25 AM
Wednesday, May 25, 2016 7:11 AM -
I think ReliableDictionaries are suitable for isolated simple structured data. However, if you have a more complex data model with many relationships, you don't want to miss the query capabilities of a datbase.
Makes that sense or do I misunderstand basic concepts?
Monday, July 18, 2016 1:13 PM