--
Matteo Merli
<matteo.me...@gmail.com>

On Tue, Mar 8, 2022 at 9:36 PM Michael Marshall <mmarsh...@apache.org> wrote:
>
> My primary concern is that our event driven messaging platform relies
> on polling for distribution of system events, like newly created
> topics. I would love to find a purely event driven solution.

As discussed above, I too would like a pure push notification that is
100% reliable, though that is not possible when the 2 operations
(create topic and send the notification) are not atomic.

I don't see any possible easy way to work around this fact.

The purpose of maintaining polling (with caching of the results), is
to ensure that we can eventually detect and correct any missed
notifications.


> I have some additional questions before I reply to the above feedback.
>
> How will this feature affect Pulsar's load balancing of topics? The
> PIP leads me to think that all brokers will host the
> TopicsListService, which means the same data will be stored across
> many brokers. How will this affect clusters with many topics across
> many namespaces?

This proposal doesn't really change the existing behavior of how that
works with respect to load balancer. Today, all brokers are responding
to requests to get lists of topics.


> > There is no message filtering in this proposal. Only topic list filtering.
>
> Broker side filtering of topic names based on arbitrary, user supplied
> regex feels like message filtering, which is why I mentioned the
> concept. I am pretty sure that arbitrary server side regex computation
> opens up the attack surface of a broker by creating the possibility
> for a ReDoS (regular expression denial of service). At the very least, it
> could negatively impact tenant isolation within a broker if an expression
> is computationally expensive. Am I correct in thinking that we'll need
> to address this risk?

Filtering of messaging is a completely different problem that involves
breaking batches, decompress messages and parsing loads of metadata in
order to extract the metadata on which to filter.

Here we're just filtering a list of strings. I believe we can address
the risk by providing a switch to enable/disable this feature.
When the feature is disabled, it will be working exactly as it works
today: no server side filtering or caching and no notifications.



Matteo

Reply via email to