Both sides previous revision
Previous revision
Next 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 [2020/03/30 12:49] tomiskar |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* ''IdmLongRunningTaskDto'' - long running task | * ''IdmLongRunningTaskDto'' - long running task |
| * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* adds event type ''END'' - long running task ended. | * adds event type ''END'' - long running task ended. |
* ''IdmEntityEventDto'' - persisted event | * ''IdmEntityEventDto'' - persisted event |
* ''IdmCodeListItemDto'' - code list items | * ''IdmCodeListItemDto'' - code list items |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
| * ''IdmNotificationTemplateDto'' - notification templates |
| * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
| * ''IdmIdentityProjectionDto'' - identity form projections |
| * supports base event types ''CREATE'', ''UPDATE'' |
* ''acc'': | * ''acc'': |
* ''AccAccountDto'' - Accounts on target system | * ''AccAccountDto'' - Accounts on target system |
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 === |
} | } |
</code> | </code> |
| |
| |
===== Future development ===== | ===== Future development ===== |