Skip to main content

Develop a plugin

Plugin authors own the external client, payload meaning, and upstream acknowledgement policy. The SDK owns the Tenon control connection, bounded queues, lifecycle handoff, and completion codes.

Choose one interface:

  • Source brings records into a Flow.
  • Sink receives Lua output and reports external delivery.
  • Source-and-sink shares one process and configuration for both interfaces.

Use the Rust or Java source-build path. Define a proto3 payload and config.schema.json, build the package with the standard bundler, install it into a Runner, and verify actual downstream behavior. A successful process start is only one part of the check.