Functional requirements that describe system behavior must be complemented with non-functional
requirements that constrain system performance, scalability, availability, resilience, interoperability,
usability, and security.
Assumptions
How many total users?
How many active users?
What is the number of records read by each user per day?
What average size of one record?
What is the average number of records written per day into a database?
MySQL An open-source relational database management system. MySQL Community Edition is free to use and widely adopted for small to medium-sized applications.
PostgreSQL Another open-source relational database management system known for its advanced features, extensibility, and compliance with SQL standards. PostgreSQL is free and often used for larger applications.
SQLite: A lightweight, file-based relational database engine that doesn't require a separate server process. It's widely used in embedded systems and as a local database for mobile and desktop applications. SQLite is public domain and free for private or commercial use.
MongoDB Community Server: MongoDB offers a free-to-use Community Server edition, which is a document-oriented NoSQL database. It's suitable for small to medium-sized applications and development purposes.
Redis: An open-source, in-memory data structure store often used as a caching layer or message broker. Redis is free to use and is available under the BSD license.
Couchbase Server Community Edition: Couchbase is a NoSQL document database with a distributed architecture. Its Community Edition is free to use and suitable for small to medium-sized applications.
MariaDB: A community-developed, open-source fork of MySQL. MariaDB is free and offers many of the features found in MySQL, along with additional enhancements.
Elasticsearch: A distributed, RESTful search and analytics engine designed for horizontal scalability, reliability, and real-time search. Elasticsearch offers a free version that can be used for basic search and analytics needs.
CockroachDB offers both an open-source version and a commercial version.
Open-Source Version: CockroachDB is available under an open-source license
Commercial Version: CockroachDB also offers a commercial version with additional features, enterprise-grade support, and advanced capabilities designed for production environments and enterprise use cases.
Scalability
Horizontal Scaling is preferred for Data Storage, Management, and Transformation since it is better for applications with variable or high load, requiring high availability and fault tolerance. Distributed databases like Cassandra or MongoDB. etc.
Functional requirements that describe system behavior must be complemented with non-functional requirements that constrain system performance, scalability, availability, resilience, interoperability, usability, and security.
Assumptions
Estimations
Bandwidth Estimations
Storage Estimations