On Search In Space And Time

   The role of a chance in our life is great. It's always about finding a relevant opportunity. Whether it's a dream job, car, home or a partner.

   Unfortunately, an opportunity is generally not available immediately. When we don't find exactly what is needed, there are few options:

  • search wider, include more sources
  • wait longer until a match appears
  • weaken the search criteria.
  •    Every option has specific pros and cons. Using a search engine means one can not search wider anymore. It searches globally already. No luck? Try again later or sacrifice your requirements.

    Continuous Search

       Hence, in many cases the only option is to wait longer. For example, one is looking for a job in certain company/area but no offers are available at the moment. Or one may want to be notified when his name is mentioned anywhere online. Repeating the search again and again (polling) doesn't work well. First, it wastes the researcher's time. Though, it might be automated. Second is that the wanted event may happen and expire between polls.

       Instead of polling, we have to subscribe for a notification when something matching our interest occurs. To maximize the chance to capture an opportunity we need to be able to find an event matching our criteria in a stream of an unlimited width. Preferably, this should be a stream of every event occurring globally. For sure, it's expected to be full of spam and other irrelevant info. So the comprehensive filtering should be included into any solution.

    Unlimited Search

       The client-side content filtering works well enough when you have limited number of well-known sources. This is how social networks, messengers, news readers, email clients use to work. Just follow/join to limited set of groups or channels. This gives us a comfortable control but with a price. We'll never catch any serendipitous message. Just because we don't know where the important message comes from. We remain in our limited bubble more likely missing the opportunity from other sources.

       The conclusion is that we often need to filter events from the whole Internet (!). However, it's not feasible to burden the client with an unlimited event stream. Any client basically won't be able to sustain this. Moreover, it should not do this, because this means the huge streams of unwanted info duplicated to every client.

    Solution

       So how to achieve both continuous and unlimited search? This may be a service that:

  • collects event sources
  • consumes these sources
  • resolves what is relevant to whom
  • delivers matching messages.
  •    This is exactly how Awakari service works. It consumes many sources on its input. For every incoming event it resolves every subscriber who is interested in this. Using the reverse search under the hood allows to resolve all interest subscribers at once. This means Awakari is the service easily scalable to consume the unlimited event stream.

       To start using Awakari, define a new subscription including own matching conditions. A condition may be a simple keyword sequence, number condition or a group of other conditions. It's easy to test a subscription sending a sample message to Awakari. If it matches the subscription, one will receive it (currently in Telegram via AwakariBot).

    Andrei Kurilov, 2024