...
Page Properties | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Context
Tracking
...
Circulation log search by item barcode slow when table contains millions of rows.
Architecturally Significant Requirements
# | Requirement | Description | Validation Approach | Remarks |
---|---|---|---|---|
1 | Performance | Search on table with <X> records should be done in <Y> seconds |
| TBC |
Stakeholders
- Steve Ellis - Tech Lead
- Gurleen Kaur1 - Dev Lead
- Irina Pokhylets - Business Analyst
Solution Options
...
# | Title | Description | Pros | Cons |
---|---|---|---|---|
1 | Define retention policy (use |
...
archiving or table partitioning) |
...
|
|
|
2 | Add gin index for nested items → itemBarcode field |
Option C - add index for creation date and limit search date range
|
| |||
3 | Limit search date range |
|
|
|
Questions
# | Question | Answer | Status | ||||||
---|---|---|---|---|---|---|---|---|---|
1 | How many records per year clients produce? |
| |||||||
2 | Do clients have any retention policy or regulations on circulation records? |
|
Rationale
Option A 1 depends on client needs that might be hard to define for the whole community.
Option B 2 should be implemented in any case but requires additional performance testing for writing into circulation log.
Option C 3 requires minimal effort but have has tradeoffs. Can be implemented as quick fix.
LOE
...
Proposed solution is option 2 due to minimal changes on backend and no changes at frontend
Estimation
# | Title | Estimation |
---|---|---|
1 | Define retention policy (use archiving or table partitioning) |
|
2 | Add gin index for nested items → itemBarcode field |
|
3 | Limit search date range |
|
Decision
<TBD>