## Architecture
Redis is the chosen database technology and the final product will deploy autonomous
-redis cluster. In R0 schedule, single, non-redundant, non-persistent redis server is
-deployed
+redis cluster. Supported deployment options are standalone Redis server and HA
+(Sentinel) Redis deployment. Either deployment option won't provide data persistency.
## Subsystem structure
### DBaaS service
-In R0, dbaas service is realized with single container running redis database.
-The database is configured to be non-persistent and non-redundant. The container
-exposes single port which is hardcoded to be 6379.
+Dbaas service is realized either with single container running redis database
+or with HA deployment implemented by a redis sentinel solution.
+Standalone dbaas database is configured to be non-persistent and
+non-redundant. HA dbaas provides redundancy but it is also configured to be
+non-persistent.
-After dbaas service is installed, environment variables **DBAAS_SERVICE_HOST**
-and **DBAAS_SERVICE_PORT** are exposed to application containers. SDL library
-will automatically use these environment variables.
+After dbaas service is installed, environment variables **DBAAS_SERVICE_HOST**,
+**DBAAS_SERVICE_PORT** and **DBAAS_NODE_COUNT** are exposed to application
+containers. In the case of HA dbaas deployment also environment variables
+**DBAAS_MASTER_NAME** and **DBAAS_SERVICE_SENTINEL_PORT** are exposed to
+application containers. SDL library will automatically use these environment
+variables.
The service is installed via helm by using dbaas-service chart. Modify the
values accordingly before installation (repository location, image name, ..)
helm install ./dbaas-service
```
+### SDLCLI
+There is a pre-installed `sdlcli` tool in DBaaS container. With this tool user
+can see statistics of database backend (Redis), check healthiness of DBaaS
+database backend, list database keys and get and set values into database.
+To get more information about available commands and how to use them, please
+check help instructions: `sdlcli --help`.
+
### DBaaS test application
Test application is installed via helm by using dbaas-test chart. Modify the
>>printenv
DBAAS_SERVICE_HOST=10.108.103.51
DBAAS_SERVICE_PORT=6379
-
+DBAAS_NODE_COUNT=1
Go test application using preliminary go SDL-API should be able to perform reads and writes: