BangDB supports different ways to connect to the database for the operations in all different areas. Some of the supported methods are following:
- CLI (Command Line Interface)
- REST API
- Client libraries [ C, C++, Java ]
While CLI and Client libraries use TCP based communication model, Dashboard uses REST API completely. Important point to note is that in order to support TCP and HTTP(S), we don't need to run two instances of BangDB (one in TCP and another in HTTP mode), but single instance can act as both TCP and HTTP server, at the same time. This makes the BangDB instance lot more flexible and powerful from the connectivity point of view.
Running the instance of BangDB in two modes is possible because BangDB implements the HTTP layer as well. BangDB is a HTTP server too (apart from being a TCP server). All the high performance server management design and structure is extended to HTTP layer as well. The details on this subject is not the core part of this document, but the aim is to introduce various REST APIs that are needed for basic set of operations in BangDB.