Diagram #

Database #
As multiple strategies will be implemented in the future, so Database is an interface. it has only one method execute(Command).
The method should not throw any exception, nor return null, as the result will be written to socket. The implementations will decide whether it’s thread safe.
JimdsData #
Except Database, some data type super classes are also defined. Currently only supports String and Hash, as Hash is also used to implement Database.
Once a simple version of Database, String, and Hahs are implemented, a minimal viable product(MVP) is ready.