Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
devel:documentation:architecture:dev:events [2019/03/19 13:36] tomiskar [Transactions] |
devel:documentation:architecture:dev:events [2021/08/13 07:18] (current) tomiskar [Entities with event support] |
* adds event type ''PASSWORD\_EXPIRED'' - password expires | * adds event type ''PASSWORD\_EXPIRED'' - password expires |
* ''IdmProfileDto'' - operation with the identity profile | * ''IdmProfileDto'' - operation with the identity profile |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'', ''NOTIFY'' |
* ''IdmPasswordDto'' - operation with the CzechIdM password | * ''IdmPasswordDto'' - operation with the CzechIdM password |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* 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 |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* ''IdmCodeListItemDto'' - code list items | * ''IdmCodeListItemDto'' - code list items |
| * 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'' |
| * ''ModuleDescriptorDto'' - application modules |
| * supports base event types ''INIT'', ''ENABLE'', ''DISABLE'' |
| * ''IdmScripDto'' - groovy scripts |
| * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
| * ''IdmMonitoringDto'' - monitoring evaluators |
| * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
| * adds event type ''EXECUTE'' - run monitoring evaluator |
| * ''IdmMonitoringResultDto'' - monitoring results (returned from evaluator) |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* ''acc'': | * ''acc'': |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* ''SysSystemDto'' - System in ACC module | * ''SysSystemDto'' - System in ACC module |
| * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
| * ''SysRemoteServerDto'' - Remote server in ACC module |
* supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' | * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* ''SysSystemMappingDto'' - Mapping between system and his mapping of provisioning or sync | * ''SysSystemMappingDto'' - Mapping between system and his mapping of provisioning or sync |
* adds event type ''CANCEL'' - cancels provisioning operation | * adds event type ''CANCEL'' - cancels provisioning operation |
* ''AbstractSysSyncConfigDto'' (''SysSyncConfigDto'', ''SysSyncContractConfigDto'', ''SysSyncIdentityConfigDto'') - synchronization | * ''AbstractSysSyncConfigDto'' (''SysSyncConfigDto'', ''SysSyncContractConfigDto'', ''SysSyncIdentityConfigDto'') - synchronization |
| * supports base event types ''CREATE'', ''UPDATE'', ''DELETE'' |
* adds event type ''START'' - starts synchronization | * adds event type ''START'' - starts synchronization |
* adds event type ''START\_ITEM'' - starts synchronization of one item (~entity) | * adds event type ''START\_ITEM'' - starts synchronization of one item (~entity) |
| |
| |
The default order for listeners (''-'' => before, ''+'' => after): | The [[#predefined_processors_order|default order]] for listeners (''-'' => before, ''+'' => after). |
* ''core'': **0** | |
* ''provisioning'': **1000** | |
* ''delete / archivate processed'': **5000** | |
| |
===== Basic interfaces ===== | ===== Basic interfaces ===== |
| |
* ''getPriority(event)'' - Registered async processor can vote about priority of processing for given event. Returns ''null'' by default => processor doesn't vote about priority - preserve original event priority. Use ''IMMEDIATE'' to execute whole event synchronously. All registered processors votes about event priority - whole event will be processed with the highest priority. | * ''getPriority(event)'' - Registered async processor can vote about priority of processing for given event. Returns ''null'' by default => processor doesn't vote about priority - preserve original event priority. Use ''IMMEDIATE'' to execute whole event synchronously. All registered processors votes about event priority - whole event will be processed with the highest priority. |
| |
| ==== AbstractInitApplicationProcessor==== |
| |
| Use this super class for providing application and module [[.events:init-data|init data]]. |
| |
| |
| |
===== Transactions ===== | ===== Transactions ===== |
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 === |
===== Implemented processors ===== | ===== Implemented processors ===== |
| |
Basic save and delete processors are not listed. | **Basic processors for simple operations (e.g. save, delete) are not listed.** All registered processors can be listed in agenda (Settings - Modules - Processors). |
| |
==== Automatic roles processors ==== | ==== Automatic roles processors ==== |
<code properties> | <code properties> |
} | } |
</code> | </code> |
| |
| |
===== Future development ===== | ===== Future development ===== |