Open Cliftonz opened 11 months ago
If anyone looks at implementations, can I suggest that this is cross-cutting concern and should be injected. I can imagine a base implementation can be implemented as extensions.
Note: there are two implementations: direct instantiation and injection. Only the later will work with this approach.
@toddb Thanks for the input!
In order to enhance the resilience and reliability of our SDK, we would like to introduce an Exponential Retry mechanism for retrying failed requests. Additionally, to ensure the idempotent processing of requests, it's vital to incorporate support for providing an Idempotency Key as per the draft specified in the HTTP Idempotency Key Header Field.
The key requirements for this implementation include:
Exponential Retry Mechanism:
Idempotency Key Provisioning:
Idempotency-Key
and following the standards outlined in the draft.Configuration and Documentation:
Acceptance Criteria:
Update: You can reference the go-lang library to keep the method signature and configuration the same. https://github.com/novuhq/go-novu/pull/62
Please refer to the draft for further details on the HTTP Idempotency Key Header Field and ensure adherence to the specified standards while implementing this feature in the SDK.