k8ssandra / management-api-for-apache-cassandra

RESTful / Secure Management Sidecar for Apache Cassandra
Apache License 2.0
70 stars 51 forks source link

Replace internal serialization framework in Agent #431

Open emerkle826 opened 8 months ago

emerkle826 commented 8 months ago

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