STILL WIP
Expand |
---|
title | Initial Refinement informing Design work a.k.a. Connections (... and Reval) ~Syncing~ Cache Design |
---|
|
Problems: Same work as recommendations assumption, we SHOULD do the same CDC and the "separate indexes" Level of change: we could do minimal updates to what is implemented now “Logic” Implementing in different languages / at different times Filters would need to be duplicated if using different indexes:
• Hypothesis: It would all be much simpler if we were copying all programme memberships separately
Principals: Solutions: Three ways of caching data, the first might not be viable because of connection specific info: Single Index across REVAL? (Probably not, given the likely need of holding connection specific info?) Single Index for Connections Single Index for each tab
|
...
The approach of “pre-sorting” the data was also fine before as the exact same code was used for CDC and the ES Resync job. However, in order to repeat the massive time saving we achieved in
Jira Legacy |
---|
server | System JIRA |
---|
serverId | 4c843cd5-e5a9-329d-ae88-66091fcfe3c7 |
---|
key | TIS21-3416 |
---|
|
for the
Connections service, we have to use the Elasticsearch “reindex” operation, which means
we would have to duplicate the logic we have written in Java now in ES query language as part of the reindex request - and then maintain both separately.In summary:
Having multiple indexes makes GET requests simpler
Multiple indexes means duplicating data
Multiple indexes makes requires multiple updates for a single data change
Because we have separate CDC and Resync processes, and because the Java approach is prohibitively slow for the Resync process, we would have to write and maintain the business logic in separate places in separate languages
Alternative Approach 1 - Single Connection index
TODO - it’s late
Drawio |
---|
mVer | 2 |
---|
zoom | 1 |
---|
simple | 0 |
---|
inComment | 0 |
---|
pageId | 3696689344 |
---|
custContentId | 3695936234 |
---|
lbox | 1 |
---|
diagramDisplayName | Untitled Diagram-1674068170357.drawio |
---|
contentVer | 1 |
---|
revision | 1 |
---|
baseUrl | https://hee-tis.atlassian.net/wiki |
---|
diagramName | Untitled Diagram-1674068170357.drawio |
---|
pCenter | 0 |
---|
width | 670 |
---|
links | |
---|
tbstyle | |
---|
height | 831 |
---|
|
Interlude - Schema Design
Alternative Approach 2 - While we’re at it, single Reval index?
Drawio |
---|
mVer | 2 |
---|
zoom | 1 |
---|
simple | 0 |
---|
inComment | 0 |
---|
pageId | 3696689344 |
---|
custContentId | 3696787862 |
---|
lbox | 1 |
---|
diagramDisplayName | Untitled Diagram-1674068265090.drawio |
---|
contentVer | 1 |
---|
revision | 1 |
---|
baseUrl | https://hee-tis.atlassian.net/wiki |
---|
diagramName | Untitled Diagram-1674068265090.drawio |
---|
pCenter | 0 |
---|
width | 481 |
---|
links | |
---|
tbstyle | |
---|
height | 831 |
---|
|