Agar lebih fleksibel, Tyk memiliki fitur custom plugin yang dapat dieksekusi sesuai hook yang dijalankan, misal ketika mendapatkan HTTP response dari target API atau ketika HTTP request sampai ke gateway setelah pengecekan autentikasi.
Tyk mendukung untuk pengembangan plugin dalam beberapa bahasa seperti Go, Java, Python, JavaScript, dll. Untuk lebih jelasnya bisa dilihat di Supported Languages (tyk.io). Akan tetapi Tyk merekomendasikan Go (Golang native plugin) untuk alasan performa karena by design Tyk dibuat memakai Go dan Go memiliki standar library plugin yang dapat membuat program Go dapat di-load secara dinamis oleh program Go lain (dalam hal ini Tyk Gateway akan me-load plugin yang dapat dibuat custom).
<aside> 💡 Cara Tyk mendukung fitur plugin dengan Go adalah dengan package plugin (standard library Go). Plugin akan dibuild sebagai dynamic library (dalam Linux file .so) dan akan di-load ketika program Tyk running.
</aside>
Misalkan target service mengembalikan respon JSON dalam format camel case dan API consumer/client hanya dapat memproses JSON dalam format snake case. Misalkan untuk beberapa alasan (e.g., cost-nya besar) mengubah target service atau pun API consumer/client bukan merupakan opsi, dalam hal ini plugin dapat digunakan untuk melakukan transformasi format dari snake case ke camel case.
{
"nominalTransaksi": 125000.50
}
dapat ditransformasi menjadi
{
"nominal_transaksi": 125000.50
}
yang dapat diproses API consumer tersebut.
Hit API tanpa lewat gateway (perhatikan nama field-nya).

Hit API lewat gateway yang akan menjalankan plugin untuk melakukan transformasi terkait.
