A multi-tenancy mongo-proxy consolidating multiple physical clusters
client -> handleFuncChain [HandleCommand ----> Transform]
| |
<-------------- block and process has response? ---> mongo
| Y |
<--------------------------------------- return |
|
<--------------------------------------- revert <--- response
- Authentication and handshake would be blocked and processed by mongo-proxy.
- A meta server is employed to help mongo-proxy to route connections and requests.
- Necessary transformations would be applyed to requests and responses to shield the topology of physical clusters.
Parser of mongodb wire protocal
Connection and endpoint implements.
Transformations and router of request and response
Topology of physical clusters. Only mongodb suppoerted currently.
Commands that should be processed locally, such as ismaster, handshake.
Sasl authenticator handler. Only SCRAMSHA256 supported currently.