mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 18:00:48 +00:00
feat: enable handling projections for inactive instances (#5523)
* fix: don't ignore failed events in handlers * question * fix retries * don't instance ids query * statements can be nil * make unit tests pass * add comments * spool only active instances * feat(config): handle inactive instances * customizable HandleInactiveInstances * test: handling with and w/o inactive instances * docs: describe projection options * enable global handling of inactive instances * accept NowFunc, not Clock interface * add comment about stringer usage * remove enum stringer implementations * fix enum format types * Update internal/eventstore/repository/mock/repository.mock.impl.go Co-authored-by: Silvan <silvan.reusser@gmail.com> --------- Co-authored-by: Silvan <silvan.reusser@gmail.com>
This commit is contained in:
@@ -76,16 +76,36 @@ Database:
|
||||
You also might want to configure how [projections](/concepts/eventstore/implementation#projections) are computed. These are the default values:
|
||||
|
||||
```yaml
|
||||
# The Projections section defines the behaviour for the scheduled and synchronous events projections.
|
||||
Projections:
|
||||
# Time interval between scheduled projections
|
||||
RequeueEvery: 60s
|
||||
# Time between retried database statements resulting from projected events
|
||||
RetryFailedAfter: 1s
|
||||
# Retried execution number of database statements resulting from projected events
|
||||
MaxFailureCount: 5
|
||||
# Number of concurrent projection routines
|
||||
ConcurrentInstances: 1
|
||||
# Limit of returned events per query
|
||||
BulkLimit: 200
|
||||
MaxIterators: 1
|
||||
# If HandleInactiveInstances this is false, only instances are projected,
|
||||
# for which at least a projection relevant event exists withing the timeframe
|
||||
# from twice the RequeueEvery time in the past until the projections current time
|
||||
HandleInactiveInstances: false
|
||||
# In the Customizations section, all settings from above can be overwritten for each specific projection
|
||||
Customizations:
|
||||
projects:
|
||||
Projects:
|
||||
BulkLimit: 2000
|
||||
# The Notifications projection is used for sending emails and SMS to users
|
||||
Notifications:
|
||||
# As notification projections don't result in database statements, retries don't have an effect
|
||||
MaxFailureCount: 0
|
||||
# The NotificationsQuotas projection is used for calling quota webhooks
|
||||
NotificationsQuotas:
|
||||
# Delivery guarantee requirements are probably higher for quota webhooks
|
||||
HandleInactiveInstances: true
|
||||
# As quota notification projections don't result in database statements, retries don't have an effect
|
||||
MaxFailureCount: 0
|
||||
```
|
||||
|
||||
### Manage your Data
|
||||
@@ -143,4 +163,4 @@ DefaultInstance:
|
||||
## Quotas
|
||||
|
||||
If you host ZITADEL as a service,
|
||||
you might want to [limit usage and/or execute tasks on certain usage units and levels](/self-hosting/manage/quotas).
|
||||
you might want to [limit usage and/or execute tasks on certain usage units and levels](/self-hosting/manage/quotas).
|
||||
|
Reference in New Issue
Block a user