Leveraging XMPP to deliver notifications for Matrix feels like an odd matchup. Or is that just because Synapse + FluffyChat support UnifiedPush and the use of XMPP is purely coincidental/incidental?
(Trying to wrap my head around the architecture too, with the last sentence there. Presumably the service and client need to know how to talk to the UnifiedPush provider?)
It is kinda weird. However, at the end of the day, UnifiedPush is just a protocol that allows $heavyProtocolA to receive notifications through $lightProtocolB.
And XMPP is just $lightProtocolB, there is nothing stopping an XMPP-based UnifiedPush distributor w/o messaging from existing. If you don't use XMPP for messaging, there are many simpler distributors available.
Is it really about light vs. heavy though? I thought it was mostly about multiplexing notifications through a single app (usually through a single connection as well), so only one app has to consume resources constantly, and others might be activated as needed.
It's a little bit of both. You want to only keep one connection open as it minimizes the amount of network activity for e.g. keepalives. You also don't want the app holding that connection open to drain the battery in the process though.
(Trying to wrap my head around the architecture too, with the last sentence there. Presumably the service and client need to know how to talk to the UnifiedPush provider?)