Binding, scheduler and multi-threading

Apologies if this is already answered in the documentation, but I couldn’t find it.
I’m developing a binding with a Bridge that centralizes most of the command execution. I’m also scheduling several tasks within the Bridge itself, using the scheduler. My question is whether I need to synchronize all these tasks. Is the scheduler implemented as a sequential executor, or has only one thread? Also, the calls to the handlers’ methods like initialize() or handleCommand() do they need to be synchronized with code executed from the scheduler?

Depends on the tasks that are scheduled. The scheduler as several threads, so there is no guarantee of execution order.

If you need several tasks in parallel, think aboutvtje design. If you need to make sure that tasks execute after other tasks, use CompletableFutures. If you need to access maps or lists, use the thread-safe implementations like ConcurrentHashMap.