Message brokera używamy w pracy do przetwarzania ciągów operacji zdefiniowanych przez użytkownika, mamy coś w stylu:
(filter profiles) |----> (send email) |-- wait 2d --> (opened?) |- yes --> (do something)
|- no ---> (do something else)
Edit:
Dodam jak w zarysie wygląda przetwarzanie takiego "flow" przez broker:
Ogólnie mamy kilka(naście) różnych kolejek i workerów na nich operujących, w uproszczeniu przykład wygląda tak:
- do piewszej kolejki trafiają pary profil-zapytanie, jak spełnia warunek to worker bierze pierwszą akcję i wpycha ją do kolejnej kolejki,
- kolejny worker sprawdza typ akcji i pakuje ją do wyspecjalizowanej kolejki (z delayem jeśli jest),
- wyspecjalizowany worker robi co ma robić (w tym przypadku wysyła maila) i pakuje kolejną akcję (jeśli istnieje) do poprzedniej kolejki,
- analogicznie jak w pkt 2
- wyspecjalizowany worker robi co ma robić (w tym przypadku podejmuje decyzję) i pakuje jedno z rozgałęzień do kolejki obsługiwanej przez worker z pkt 2
- wyspecjalizowany worker robi co ma robić (
do something
lub do something else
)