Now for the tests that are sending and retrieving data, it is not enough to verify with mocks/stubs ( see https://martinfowler.com/articles/mocksArentStubs.html ) .
There must be some real objects that saves / retrieves data, otherwise it is just mocking the answer.
So now how to store data
TITLE: ADR 004 - Database
Issue
Saving and Retrieving the data means a form of database - relational, not relational, file storage ...
Decision
Relational Database for server - SqlServer If we want to test on client - Sqlite
Status
- Approved
Grouping
Database
Assumptions
The retrieval of data should be somehow fast - like maximum 15 seconds for any 4 MB of content ( does not account data transfer )
Also , should account ( see Case 003 )to get PC Names for a User .
Constraints
Testing Data should have also a database ( UAT )
Positions
Could also be
- a non-relational database ( Mongo DB)
- other relational ( PostGreSql)
- file based systems
Argument
I know very well SqlServer .
For non -relational - it will load all the data in order to find PC names for an user ( ok, maybe with caching will do )
Implications
More time to install the app remote (because of SqlServer)
Related decisions
None
Related requirements
None
Related artifacts
None
Related principles
None
Notes
None