In the Agent part of Management API (the code that gets embedded within the JVM process running Cassandra/DSE), database management operations are exposed by a Remote Procedure Call (RPC) design where the Agent operations consume and produce Objects that are serializable via Cassandra's TypeSerializer.
However, using Cassandra's serialization severely limits the Object structures the Agent can consume/produce. This sometimes leads to implementing new capabilities where complex data has to be written as a JSON string, which unnecessarily throws away type safety/checking.
It would be ideal to use an off-the-shelf serialisation framework (e.g. Jackson or similar) to pass data between the agent and server. We posit that this will be more performant, allow better typing (leading to improvements to productivity, self-documentedness, and safety) and be more secure.
Definition of Done
[ ] Replace the internal Object serialization with a framework that allows for more complex data structures for the RPC inputs/outputs.
Issue:
In the Agent part of Management API (the code that gets embedded within the JVM process running Cassandra/DSE), database management operations are exposed by a Remote Procedure Call (RPC) design where the Agent operations consume and produce Objects that are serializable via Cassandra's TypeSerializer.
However, using Cassandra's serialization severely limits the Object structures the Agent can consume/produce. This sometimes leads to implementing new capabilities where complex data has to be written as a JSON string, which unnecessarily throws away type safety/checking.
It would be ideal to use an off-the-shelf serialisation framework (e.g. Jackson or similar) to pass data between the agent and server. We posit that this will be more performant, allow better typing (leading to improvements to productivity, self-documentedness, and safety) and be more secure.
Definition of Done