In #675 we moved to serverless generating Mapping Rules.
But further work is necessary to support (very) large scan reports, and prepare for greater scale overall.
A loose plan is to move towards orchestrating the serverless functions, with Durable Functions.
There is also:
additional optimisation to happen in the rules algorithm itself
technical debt in the existing functions that still use the Django API rather than connect to the DB directly:
[x] #703
[ ] Update UploadQueue function to use the DB
Some of this work is exploratory - as durable functions is new to the team.
Tasks
[x] New (http?) durable function "Orchestrating" CreateConcepts and MappingRules
[x] Change the CreateConcepts + MappingRules to be able to be orchestrated
[x] Change the triggering from Django form to point to the new Orchestrator
[x] Change refresh_mapping_rules make deleting existing rules optional.
[ ] Memoize the destination tables in _save_mapping_rules
[ ] Remove unnecessary lookups in _save_mapping_rules
[x] Explore whether the "dequeuing" is still relevant in durable functions
Lower Priority
[x] Explore "status" endpoint of durable functions, is this easy for us to implement as a quick way to give the user a status of the mapping? To make the UX less "eerie"
In #675 we moved to serverless generating Mapping Rules. But further work is necessary to support (very) large scan reports, and prepare for greater scale overall.
A loose plan is to move towards orchestrating the serverless functions, with Durable Functions.
There is also:
UploadQueue
function to use the DBSome of this work is exploratory - as durable functions is new to the team.
Tasks
CreateConcepts
andMappingRules
CreateConcepts
+MappingRules
to be able to be orchestratedrefresh_mapping_rules
make deleting existing rules optional._save_mapping_rules
_save_mapping_rules
Lower Priority
Acceptance Criteria: