We want to use Aerspike as a key value store. Our client call will happen from nginx where our code is written in lua. Nginx is event driven server and it has a different socket API, and if we don’t use that our call will block and that is something we would not want to do.
Does Aerospike has some solution for Nginx? I saw the lua binding but that is internally using the C API which is using libc socket API’s, which won’t serve our purpose.
Nginx has a different socket API, so I cant call Aerospike C API as it would directly be using libc sockets. So I need to build all the client logic myself. Now if the protocol between clients and server changes how do I keep track on that?
Aerospike takes wire-level compatibility very seriously. Core KV protocol has always stayed backward compatible. Any new protocol support will be high-lighted in the release note for both server and client. Example of such is the the “replicas-all” partition info, introduced in 3.5.9.
In terms of full wire protocol documentation, this unfortunately is less exhaustive currently. The actual client implementation (Generally C or Java) will be the best model client.