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

Reply via email to