Here a list of some things I’ve noticed:

  *   The already mentioned Server -> ServerCLI -> Server cycle I mentioned in 
the other tread
  *   The “conf” package contains both configuration model classes, but some 
“checks” (passive) which actually more are “tasks” (active)
     *   The “Check” classes in the config package are only used by the CLI 
operations (They should be moved in some sort of “tasks” package relative to 
the CLI implementation
  *   In the config node the RPC stuff is located in a “thrift” package which 
doesn’t sensibly give any information on what it does (We should rename that to 
something “rpc” or “rpcserver”
  *   The same RPC classes are located alongside the DataNode class (We should 
move them into the same package sub-name as we do for the config node)
  *   In the DataNode all of the sub-services RestService, RPCService, 
MQTTService, … are all located parallel to the main DataNode class which uses 
them
     *   I would propose to define and use a “Service” interface and have this 
implemented by all sub-services.
     *   I would propose to move stuff such as the MQTT Service, RestService, … 
into separate maven modules.
        *   This would allow us to provide differing implementations such as an 
MQTT subsystem, that provides its own MQTT server (like we currently do) or a 
version that simply acts as a Client to an existing MQTT infrastructure
  *   In the DataNode module it feels like the “protocols” package doesn’t 
really contain any protocol, but client stubs of different type (which 
themselves partially use different protocols in the end)
     *   I would propose to move some of these out into separate modules, just 
like the “Services” that use them.
  *   The DataNode protocols package contains clients for ConfigNodes (cn) and 
DataNodes (dn) which feels slightly odd (I assume this is because a client 
always connects to a DataNode in order to execute operations … even operations 
on other DataNodes and ConfigNodes). Possibly a separate CLI module would be 
more appropriate?

Reply via email to