mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 03:07:31 +00:00

# Which Problems Are Solved
The execution handler projection handles all events to check if an
execution has to be provided to the worker to execute.
In this logic all events would be processed from the beginning which is
not necessary.
# How the Problems Are Solved
Add the current state to the execution handler projection, to avoid
processing all existing events.
# Additional Changes
Add custom configuration to the default, so that the transactions are
limited to some events.
# Additional Context
None
(cherry picked from commit 21167a4bba
)
28 lines
586 B
Go
28 lines
586 B
Go
package setup
|
|
|
|
import (
|
|
"context"
|
|
_ "embed"
|
|
|
|
"github.com/zitadel/zitadel/internal/database"
|
|
"github.com/zitadel/zitadel/internal/eventstore"
|
|
)
|
|
|
|
var (
|
|
//go:embed 55.sql
|
|
executionHandlerCurrentState string
|
|
)
|
|
|
|
type ExecutionHandlerStart struct {
|
|
dbClient *database.DB
|
|
}
|
|
|
|
func (mig *ExecutionHandlerStart) Execute(ctx context.Context, e eventstore.Event) error {
|
|
_, err := mig.dbClient.ExecContext(ctx, executionHandlerCurrentState, e.Sequence(), e.CreatedAt(), e.Position())
|
|
return err
|
|
}
|
|
|
|
func (mig *ExecutionHandlerStart) String() string {
|
|
return "55_execution_handler_start"
|
|
}
|