- Recovery should be automatic to restore normal service as soon as possible
- Better to push jobs than to pull them
- Reduce the frequency of blocking requests
- Fit nicely with short jobs that comes at a fixed rate
- Not an adequate pattern when
- jobs are produced faster than finished
- jobs are expensive and should be avoided if possible
- Solution: push jobs after old jobs are finished
- Eg. push with rate limit / acknowledgement
- Actor system doesn't guarantee the delivery of messages per se
- Have to use additional protocols to approach this purpose
- ack everywhere
- store to persist
- Asking for guarantees in an uncertain world takes costs
- increased effort / complexity / latency
- additional dependency in the architecture
- A good way to compile a list of time-series events
- Has to take care of replication inconsistency, application latency, etc
- Future-based messaging
- handling failure above a supervisor, flow control and distributed workers