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:
- Pre (Request) Plugin
- Authentication Plugin
- Post-Auth (Request) Plugin
- Post (Request) Plugin
- Response Plugin
- Analytics Plugin
Get Started
Get started with your first custom plugin using our tutorial.
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