Skip to content

Concurrency rules between handlers #1046

Answered by nolar
kwohlfahrt asked this question in Q&A
Discussion options

You must be logged in to vote

It was somewhere is the docs, but the general rule is: one resource object is always sequential within its individual stream/lifecycle, multiple objects and kinds are concurrent to each other. This rule applies to short-running handlers only (creation/update/deletion/raw events).

Timers & daemons run in parallel by design. You can consider them as side tools running elsewhere doing the updates.

In neither case you can assume that the field is not patched by anything else while processing the change. It can be changed by any other application, such as kubectl, other operators, or the same operator accidentally running the 2nd instance.

Kopf does not mutate domain-specific fields because it…

Replies: 1 comment 5 replies

Comment options

You must be logged in to vote
5 replies
@kwohlfahrt
Comment options

@nolar
Comment options

@kwohlfahrt
Comment options

@nolar
Comment options

@kwohlfahrt
Comment options

Answer selected by kwohlfahrt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants