Relevant data
Background
Each microservice will need its own DB that it connects to. The DB itself is not shared across microservices.
The question is whether we allow having multiple different DBMS within the system, or we enforce using a single one.
Options considered
Use a single DBMS | Allow different DBMS in microservices | |
---|---|---|
Description | There is a single DBMS allowed to be used by all microservices | There are multiple options of DBMS available and maintained in the system from which each microservice can choose where to connect to. |
Pros and cons | easy to develop common libraries for unified access to DB introduces codetight coupling between microservices | leverages the advantages of microservices already having separated DBs proper DBMS can be used per use-case of the microservice more management needed on DevOps side |
Estimated cost | MEDIUM | LARGE |
Action items
Outcome
We have chosen to Allow different DBMS in microservices so that we allow microservices to choose what fits best their use case.
There will be a single SQL DBMS and a single NoSQL DMBS option to choose from for the microservices. The most natural candidate for NoSQL was chosen as MongoDB. The candidate for SQL DB are discussed in the next decision.