Application layer UDP filters


I’m new to Istio internals, but need to develop application layer proxies for a few UDP based protocols. I would like to understand how difficult this would be within the Istio/Envoy code base or web assembly extensions. Is there any good tutorials or documentation? The control plane would need typical service mesh features like load balancing, retries, fail-overs, canary steering, discovery, etc and in the next step also handle encryption. Could such implementations for TCP/HTTP be reused but for UDP based L7 protocols, by mapping to other data plane functions? The application protocols would be things like RTP, DDS, CoAP, etc.

My alternative would be to start from scratch instead which seems like wasting time on getting standard stuff up and running.

Any pointer to more information is welcome.