Both sides previous revision
Previous revision
|
Next revision
Both sides next revision
|
devel:documentation:architecture:dev:events [2019/03/19 13:36] tomiskar [Transactions] |
devel:documentation:architecture:dev:events [2019/04/26 09:36] tomiskar |
Before event is persisted into queue, then event priority is evaluated, priority types: | Before event is persisted into queue, then event priority is evaluated, priority types: |
* ''IMMEDIATE'' - immediate ~ synchronously. Event will be executed synchronously. | * ''IMMEDIATE'' - immediate ~ synchronously. Event will be executed synchronously. |
* ''HIGH'' - asynchronously (7 / 10 in one cycle) | * ''HIGH'' - asynchronously (7 / 10 in one cycle, batch size can be [[..:..:application_configuration:dev:backend#entity_events|configured]]) |
* ''NORMAL'' - asynchronously (3 / 10 in one cycle) | * ''NORMAL'' - asynchronously (3 / 10 in one cycle, batch size can be [[..:..:application_configuration:dev:backend#entity_events|configured]]) |
| |
Events are processed from queue by internal scheduled tasks by priority. Events with ''HIGH'' priority will use 7 slots, events with ''NORMAL'' priority will use 3 slots => events will be processed **7 / 3**, when internal scheduled task for processing events will be executed. | Events are processed from queue by internal scheduled tasks by priority. Events with ''HIGH'' priority will use 7 slots, events with ''NORMAL'' priority will use 3 slots => events will be processed **7 / 3**, when internal scheduled task for processing events will be executed. |
* original source (embedded dtos and audit fields are ignored). | * original source (embedded dtos and audit fields are ignored). |
| |
Older duplicate events are removed - the newest event is used. Events are processed by priority in bulk, default bulk size is **100 events** => duplicates are removed only in this bulk (not configurable for now, see future development). Bulk size is designed this way, because events are processed by priority - event with ''HIGH'' priority should not wait too long for another bulk is begin to process. Remove duplicates should be redesigned from scratch - remove duplicates through whole queue. | Older duplicate events are removed - the newest event is used. Events are processed by priority in batch, default batch size can be [[..:..:application_configuration:dev:backend#entity_events|configured]] => duplicates are removed only in this batch (not configurable for now, see future development). Batch size is designed this way, because events are processed by priority - event with ''HIGH'' priority should not wait too long for another bulk is begin to process. Remove duplicates should be redesigned from scratch - remove duplicates through whole queue. |
| |
=== Entity state === | === Entity state === |