Skip to main content

Develop a plugin SDK

A language SDK lets plugin authors focus on their external system. It handles communication with Tenon, startup and shutdown, and the results of sending or receiving records.

Keep responsibilities clear​

ComponentResponsibility
SDKTenon communication, lifecycle, bounded submission, and completion results
PluginExternal clients, business configuration, payload meaning, and external acknowledgement or replay
Scaffold and bundlerA usable starter project and an installable plugin bundle

Use APIs that fit the language while preserving Tenon's behavior. Different callback or async styles must still agree on ordering, backpressure, completion, and failure outcomes.

Approach the work​

  1. Read the shared contract and compare the existing Rust and Java implementations.
  2. Establish the IPC integration for the target language.
  3. Support Source, Sink, and combined plugins with a clear lifecycle for each.
  4. Verify behavior through generated plugins and a real Runner, including failure and shutdown.

Implementation details​

Use the code repository for protocol fields, callback rules, ownership, and compatibility requirements: