Skip to content

revitalize netbox api

Long story short, net.box connector is a legacy. It was ported from lua implementation (with all it's drawbacks). Some of features are already considered outdated, and some even harmful (reconnect_after). Let's revitalize it.

  1. Split the code into the following parts:

    • sans-io (protocol handling) - layer 1
    • io (tarantool-based client, optional) - layer 2
    • reconnecting client (tarantool-based) - layer 3
    • pool (collection of auto-reconnecting clients) - layer 4. It will be implemented as part of picodata#227 (closed) in picodata.
  2. Make api async using results of #22 (closed)

  3. Remove reconnect_after option support and all related FSM stuff.

  4. Don't implement remote schema support yet

  5. Eliminate the use of blocking std::net::to_socket_addr (#81 (closed)).

  6. Implement tarantool's box.session.push feature support (deprecated in Tarantool 3.0)

  7. Implement tarantool's conn:watch feature support. (#143 (moved))

  8. Compare performance with original rust implementation and with lua.

  9. Implement external schema provider based on clusterwide ddl

Bonus:

  1. Adopt new type of error responses. See also corresponding MessagePack ERROR extension.

See also

Edited by Yaroslav Dynnikov