As a sysops of GCNotify,
I want to take proactive actions on potential areas where GCNotify process might get blocked by external services,
So that I avoid future slowdowns or service interruptions of GCNotify.
WHY are we building?
Investigate and identify potential risks of external services that GCNotify uses and that might block the notifications pipeline.
WHAT are we building?
This task is only about investigation and identification of potential external services. This can be under the form of an ADR which would list all called external services, how these are called (async vs sync, libraries, etc), timeout configuration, mitigation in place, error handling, execution space (is this called in the API process or a Celery worker? which one?), etc.
VALUE created by our solution
Being proactive on potential tricky situations, leading to better architecture of our software.
Acceptance Criteria
[ ] ADR analysis on all external services called with description for each of these and listed factors (listed in the *What are we building section** but feel free to come up with yours or similar)
[ ] Follow up cards for identified risks are created (and refer to the ADR).
QA Steps
[ ] Team review
Additional info
Document scanning
That process occurs asynchronously and should not be an issue as this is non-blocking.
Salesforce
That API will block as this is synchronous but would have a timeout of 3 seconds. Ideally, request to the service should be sent into a Celery task as this might block the API process while a request is sent. On the other hand, the requests should be fairly low volume due to the type of request being sent there. Investigation should check if there is a type of request that does not require authentication as this could be more risky.
Description
As a sysops of GCNotify, I want to take proactive actions on potential areas where GCNotify process might get blocked by external services, So that I avoid future slowdowns or service interruptions of GCNotify.
WHY are we building?
Investigate and identify potential risks of external services that GCNotify uses and that might block the notifications pipeline.
WHAT are we building?
This task is only about investigation and identification of potential external services. This can be under the form of an ADR which would list all called external services, how these are called (async vs sync, libraries, etc), timeout configuration, mitigation in place, error handling, execution space (is this called in the API process or a Celery worker? which one?), etc.
VALUE created by our solution
Being proactive on potential tricky situations, leading to better architecture of our software.
Acceptance Criteria
QA Steps
Additional info
Document scanning
That process occurs asynchronously and should not be an issue as this is non-blocking.
Salesforce
That API will block as this is synchronous but would have a timeout of 3 seconds. Ideally, request to the service should be sent into a Celery task as this might block the API process while a request is sent. On the other hand, the requests should be fairly low volume due to the type of request being sent there. Investigation should check if there is a type of request that does not require authentication as this could be more risky.