Status

COMPLETE

Impact

HIGH

Driver

Juraj Macháč (Unlicensed)

Approver

Ion Mudreac

Contributors

Jan Görig (Unlicensed) Slavomír Kocka (Unlicensed) Peter Luknár (Unlicensed)

Informed

Due date

Resources

(blue star) Relevant data

(blue star) 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.

(blue star) 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

(plus) easy to develop common libraries for unified access to DB

(minus) introduces codetight coupling between microservices

(plus) leverages the advantages of microservices already having separated DBs

(plus) proper DBMS can be used per use-case of the microservice

(minus) more management needed on DevOps side

Estimated cost

MEDIUM

LARGE

(blue star) Action items

(blue star) 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.