> How do we define "important"? There's the challenge. :-)

True. But not only "how", but also "where" it is defined. The received can 
define what it wants, the xmpp server can define what to forward under certain 
conditions, and the sender can define the priority of a message.

Many network protocols have solved this by letting the sender determine a 
priority or QoS level for each message. The sender normally knows if something 
is "important" (for instance an alarm, or a call or control command) or 
"normal" (informational message) or "less important" (recurrent status update), 
for instance, and so no complex logic for this is required.

An objection could be made that an application could then choose to send all 
messages as "important" messages, overriding any throttling logic. But in 
practice, this would be counterproductive since users would quickly find out 
what service/device/address works badly and stop using it or unfriending 
misbehaving contacts.

The above solution could then hypothetically be complemented by a simple 
subscription mechanism on the client, or an automatic rule on the xmpp server 
determining what messages to forward and when, and perhaps also with bandwidth 
limits on different types of messages, and if messages not being forwarded 
should be treated as offline messages or thrown away (based on message 
priority).

Best regards,
Peter Waher

Reply via email to