We can have built in retry mechanism set up per component.
As a first version it can be simple linear retry:
c := component.NewComponent("api-call").WithDescription("makes external http call").WithRetries(3)
Later we can introduce tunable retry strategies or retry based on some closure
c := component.NewComponent("api-call").WithDescription("makes external http call").WithRetryFunc(func (err error) bool {
//backoff or sleep and return true if next retry is needed
})
The mesh scheduler must block and run the activation function with hooks per each retry. Also we can have a new hook: OnRetry
We can have built in retry mechanism set up per component.
As a first version it can be simple linear retry:
Later we can introduce tunable retry strategies or retry based on some closure
The mesh scheduler must block and run the activation function with hooks per each retry. Also we can have a new hook: OnRetry