Raccomando le code di priorità in una configurazione produttore / consumatore.
modifica:
Ho usato le code di priorità in una sorta di sistema pub / sub prima. Ho creato un oggetto router; un metodo di quell'oggetto era un mittente, con la priorità e il punto di destinazione specificati. C'era un metodo di lettura che sarebbe il punto di destinazione.
Sotto il cofano sarebbero le code prioritarie. L'oggetto router gestiva la lettura e la scrittura delle code.
In realtà era un sistema multithread; i produttori di informazioni sarebbero cose come un server http, file, ecc., i consumatori potrebbero essere la coda di eventi di Windows, i file o i messaggi http. Il router gestirà la messaggistica tra produttori e consumatori.
Per il filtraggio, determinerei a chi interessa il filtro e posizionare il blocco del filtro come parte di quell'elemento. Probabilmente ogni elemento (produttore, router e consumatore) otterrebbe la capacità di agganciare. (ad esempio, un elenco di funzioni inoltrate e AND
'd insieme per consentire il passaggio di un messaggio).