Open
Description
motivation:
benefits from the golang ecosystem, people could easily implement plugins, for more long tail scenes.
we could build a plugin hub, so that people could contribute plugins to the hub, and reuse plugins.
similar to the traefik: https://plugins.traefik.io/plugins
technical details:
- each plugin is a golang module, with a valid go.mod.
- each plugin could declare its own config proto, default to TypedStruct.
- people could push config through control-plane, i.e. EnvoyFilter for istio.
- furthermore, the hub could provide a way to combine plugins into a big plugin, to reduce cgo calls which might be a bit heavy cost.