I’d like to set up a server cluster of two temporal server applications.
What I mean by one “server” is an application, that runs the frontend, the matching service, the history service and the worker service. (I know that it’s best practice to have separate applications for each service, but for now this is what our limitations allow).
In the meantime we’ll also have two workers. These workers should connect to the cluser with client side load balancing. If I understand it correctly, if we put both “servers” behind the same dns, it should be fine.
I have a few question/doubts for this setup:
1, How can I configure that the two “servers” see and connect to each other, so they form a cluster? It might be a trivial question but I haven’t found a good example.
2, Is it possible that two “servers” use the same databases? (default and visibility). I know it’s not ideal, but for the time being we use Postgres.
3, In the workflows we use activities that are sending RabbitMQ messages, use
doNotCompleteOnReturn() and get finished after the response arrives in another RabbitMQ message. My fear is, that RabbitMQ also does a form of “load balancing”, and the worker instance that starts the activity and the instance that try to finish it might not be the same. Is this going to cause any issues?