Вопрос

As I've understood it, Esper is built using Queries to distinguish between what's relevant and not in an incoming event.

I'm considering using Esper, but I'm not sure if it's well suited for my scenario.

My scenario:

I need to track a few things for a large amount of customers. I will have a large amount of events incoming per second, and each of these need to determine a progress rate, for a certain customer.

Example One: Let's say I sell matches, and as such I sell a lot really fast. So I have a lot of transactions all the time, and I want to track how many matches a each customer buys. When a customer has bought 10 matches, I want him to get a free box for his matches. So for this simple example I would ofc say, don't use Esper.

But as this can evolve, the question could be that a customer should get a free box for his 10th match bought, and every 3rd one after that he will get 2 matches for the prize of one.

After buying 50 matches, he will get a XL sized match-box, filled with matches.

And so on, with multiple rules stacking on top of each other.

My guess on how Esper would solve it:

So, how I would think this should be done in Esper is, create a query in run-time for each customer. But as I have 2 000 000 customers, the amount of queries would be increasing extremely fast for each match I've sold. (Maybe I've misunderstood how Esper works?)

Now I'm only stuck with questions...

How much does the Esper performance decrease by the increase of queries? Is it possible to make Esper make it's calculations at a customer level without creating a customer specific query?

I've also heard that Esper sometimes lacks in threading and stability, has anyone had any problems with this?

I'm really quite new to Esper overall, and it might be that it's not at all what I'm looking for. Or maybe I've just misunderstood the useage of Esper. :)

Thanks you for reading!

Это было полезно?

Решение

I'm the team lead of Esper. The Esper team would love to hear of stability or threading questions or problems. We have a very large number of production apps running Esper/EsperHA in many major companies without issues. We are always keen to further improve the product.

How much the performance decreases depends on the type of queries and configs and threading and the CPU/memory etc.. Yes calculations can run per customer for example group-by and other constructs.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top