Login 24/7 Support Community tyk.io

Custom Plugins

Tyk supports the use of custom plugins to extend Tyk functionality.

Plugins can be executed in the following order inside the following areas of the API Request Lifecycle:

Plugin Caveats

  • They must run as a single process.
  • To apply a custom plugin to an API you must modify the API definition and add the plugin information to one of the areas of the API Request Lifecycle mentioned above.
  • They must manage API-specific cases in the same process, only one CoProcess will be managed by a Tyk Instance.

Language Support

Tyk recommends using Go plugins for performance, flexibility, and nativity reasons (All Tyk components are written in Go).

The following languages are supported for custom plugins:

  • Golang native plugins - fast, native performance
  • JavaScript Plugins (JSVM Middleware) - simple with limited direct API when performance not important (same with Python / Lua)
  • Python, Lua, gRPC (Rich Plugins) - ultimate flexibility in the language of implementation, however, there are some performance and management overheads when compared to native GoLang plugins