This is an excellent topic for the first Jappware blog post. Choosing the right database is not a trivial task, even more – it is a critical, hassle, and sensitive decision that directly affects your software health in the future!
How many database types do you know? Five? More?
There are at least six main types:
- Relational
- Column family
- Document oriented
- Graph
- Time Series
- In-memory
- etc.?
Right, there are many types and characteristics, and each of the databases was designed to solve an exact list of needs. And the main problem of the people who choose a database is to “blindly” follow open information on the internet, trends, or apply popular solutions promoted by prominent and famous companies.
Choosing the right database type
The main criteria for database type choosing should be your (or your client’s) data. And in this scope, we need to understand and deeply investigate the following common points:
- Data types and structure
- Flow, sequence, transactions, and approximate capacity
- How data will appear in the database
- How data will be queried
- Order and distribution
- Isolation
Choosing the proper database implementation
When you are done with the database type, the next question is database implementation. In this scope, we also have a few common principles that need to take into account and investigate to select an exact solution:
- CAP theorem according to business needs
- Cluster type and general database eco-system
- Replication and partitioning strategies
- Consensus algorithms
- Read and Write operations consistency and robustness
- Flexibility to re-configuration in runtime
- Fault-tolerance
Of course, it is much easier to say or write than done. That’s why we trying to share our common approaches and principles, but each of these points requires deep investigation, learning, and comparisons. As a result, you have to build a table where you clearly can present the advantages and disadvantages of each type and implementation. This will be a great solution to present your final decision!
And the main advice in database selection – listen and learn about your or your client’s business. This is the right place to find answers to all possible questions and apply these answers to each database’s documentation, public information, and use cases to understand how it applies to your needs.
We hope that our recommendations and principles will help you in the future to choose the proper database type and implementation and bring the right decisions to your solution.
Good luck!