Yes, each "task behavior" has an ID. I've chosen the term "task
behavior" over "type", because it doesn't only define "what's done" but
also "when" it's done (delay) and "how it behaves" (retries on failures).
On 14.05.25 04:25, Adnan Hemani wrote:
Hi Robert,
Firstly, thanks for this document. One quick question: is the `behavior ID`
basically the task type? This part was slightly unclear to me.
Best,
Adnan Hemani
On May 9, 2025, at 6:07 AM, Robert Stupp <sn...@snazy.de> wrote:
Hi,
Polaris is a service, which has to eventually perform operations asynchronously.
Polaris is also meant to be backed by multiple server instances (think:
high-availability & load-balancing setups).
During runtime, things can go sideways in many ways. Server instances may
crash, be killed or whatever... Task executions may fail, because some other
remote service fails, configuration values (and credentials) may be wrong or
other error situations.
Task execution should be resilient to both kinds of scenarios: being able to eventually
recover from a "dead/lost node" scenario and to retry failed tasks.
Each individual task should also be executed only once.
There are also different kinds of tasks with different behaviors: the
"function" being executed and the retry behavior.
Proposal doc for this:
https://www.google.com/url?q=https://docs.google.com/document/d/17D28E2ne5dzOHWc9DJ91Yz3lnQOtgmWaA_TBNdXv0sY/edit?tab%3Dt.0&source=gmail-imap&ust=1747400861000000&usg=AOvVaw3x56ChuB1ga0MelG6URxxi
Robert
--
Robert Stupp
@snazy
--
Robert Stupp
@snazy