Hello, not at all, I think it's a very interesting question. So, you're right, the operator is running multiple threads, one per controller. However, the level of concurrency is not directly defined by Camel K or Golang, but, by the framework we use, which is the Operator Framework. There is the possibility to change the level of concurrency [1], but I don't think it's wise because it introduces the need to synchronize the resource that your operator is watching. Let's imagine you have 2 reconcile threads willing to reconcile the same Integration. You may have a race condition there. In fact, in the provided documentation you can see that there is the usage of a MemCache, which I guess it's used to synchronize access to the CRs.
In Camel K we're working on a different kind of tenancy model which may be also used to increase the level of concurrency [2]. With this, you can run more than one operator and specify which resources to watch. It's not the low level of concurrency you're asking for, but I think it's the best way to achieve that ATM. Regards, Pasquale. [1] https://docs.openshift.com/container-platform/4.13/operators/operator_sdk/golang/osdk-golang-tutorial.html#osdk-golang-controller-configs_osdk-golang-tutorial [2] https://camel.apache.org/camel-k/next/installation/advanced/multi.html On Mon, Jun 26, 2023 at 9:57 AM Christoph Weiss <christoph.we...@de.ibm.com> wrote: > I am new to the Go language – thus following question might be stupid (but > I hope not … 😉); > > The Camel-K Operator includes multiple controllers. Further my assumption > is that the Operator itself runs multiple threads and can execute the > controllers in parallel. > Is this understanding correct? > > And if yes: is there anyway to manage / configure the number of used > threads? > > > > > > > >