traefik-snap is a fork of traefik with a snapd backend to read frontend and backend configuration from snap configuration. Listening for changes to snaps (configuration change, start and stop services) is not yet implemented but on the TODO list.
The snap is intended for IoT devices that want to provide several services on TCP ports 80/443 instead of using a different port for every service.
Auto-connect is not required, users that install traefik and decide to use the snapd backend would connect explicitly.
Write access to snapd is actually not required, but I don’t know of any other method to listen for snap changes than using
/run/snapd.socket. If snapd would provide this information via dbus this could work as well.
Another alternative could be to use interface hooks, but this requires a custom interface afaik.