Reference JIRA issue:
Jira Legacy |
---|
server | System JiraJIRA |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | ARCH-14 |
---|
|
...
- Introduce two configuration parameters (names are to be altered):
- di.flow.max_simultaneous_records – this parameter defines how many records can be processed by the system simultaneously. Default value is proposed to be set to 10*(kafka batch size)
- di.flow.records_threshold – this parameter defines how many records from previous batch must be processed before throwing new records to pipeline. Default value is proposed to be 5*(kafka batch size)
- since Kafka works with batches, those parameters should be set to be evenly divided by Kafka batch size. a validation could also be added for this rule
- Implement flow control mechanism based on parameters above:
- mod-srm counts total number of messages it passed to DI pipeline. This number of records should not exceed di.flow.max_simultaneous_records at any time.
- when <<DI_COMPLETE>> or <<DI_ERROR>> is received, record counter is decreased
- when counter reaches di.flow.records_threshold or less, more records are pushed to pipeline (from priority queue). Count of records pushed should respect di.flow.max_simultaneous_records
- those counters are per-tenant (since topics are also per-tenant)
Manual operations are pushed to the pipeline directly. They do not respect the parameters above.
...
If expected latency is too high there's another solution for implementation to be considered:
Alternate Solution: Prioritized Kafka topics
Instead of creating a single topic for a command, system creates a group of similar topics each having defined priority.
...
This solution will allow to provide minimum possible latency for prioritized commands, but is also much more complex, time-consuming, and risky for all of data import, both to implement and maintain.
List of implementation stories for the Proposed Solution:
Jira Legacy |
---|
server | System JIRA |
---|
columnIds | issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution |
---|
columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | MODSOURMAN-661 |
---|
|
Jira Legacy |
---|
server | System JIRA |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | MODSOURMAN-662 |
---|
|
Jira Legacy |
---|
server | System JIRA |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | KAFKAWRAP-18 |
---|
|
Jira Legacy |
---|
server | System JIRA |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | MODSOURMAN-663 |
---|
|