Is Temporal a hard dependency?

I'm configuring a self-hosted Retool on GCP and considering omitting the workflows component. Is it feasible to skip installing Temporal? Additionally, given the simplicity of the setup, which components from the architecture diagram at Self-hosted Retool architecture | Retool Docs are essential for implementation?

Thanks!

Hi @Tumi_Gislason, welcome back to the forum! :wave:

If you would like to omit Workflows, as part of your infrastructure you won't need to set up Temporal, Workflows worker, or Workflows backend. The rest are essential for your instance to work.

Thanks for clarifying that, Paulo! I have another related question: The diagram shows two PostgreSQL instances. Are both necessary? We intend to externalize the database instance using Cloud SQL.

You will need both.

"Retool Database is separate from the storage database, which is required in self-hosted Retool deployments to store user information and logs."

1 Like

Wow this is the first time i've seen that we need two databases :-/

I setup retool self hosted without Temporal a few days ago, and I'm only running one database.

My retool instance is happily talking to a application DB and pulling data for use in the retool apps.

Wonder what demons i've yet to uncover with this setup.

Hi @Cole_Diffin, good call out. The second one I linked is only necessary if we would like to use RetoolDB, so technically it's optional.

Thanks for clarifying @Cole_Diffin and @Paulo !
So, for a simple setup of Retool self-hosted that doesn't use any workflows and doesn't use the Retool Database the resources you need are:

  • api
  • jobs-runner
  • code-executor
  • postgres

i'm blanking on the map of service keys to common names - but if it helps, my setup is happily running in a single container (set with a max scale of 1 container) and i have the service selecter env var set as follows:

env {
name = "SERVICE_TYPE"
value = "MAIN_BACKEND,JOBS_RUNNER,DB_CONNECTOR_SERVICE"
}

so you don't need a jobs-runner and code-executor services running in separate containers? that's super interesting as the team says they're essential for the setup to work

In regards to JOBS_RUNNER I understand it is critical to ensure there is only a single instance that can ever run at once (I saw this int he AWS patterns and in the docs) I suspect this is why it is encourage to run it separatly.

In my deployment, I run the services together and ensure that it will never scale past 1 single container. (i'm expecting a user-base of between 1 and 3 users so I'm ok with the performance implications)

As far as the code_executor service I haven't found much details, nor have i gone looking for the details. However I suspect that its the same as the temporal services - if it doesnt exist, retool is smart enough to not try and use it.

(on the temporal services, In my deployed instance of retool, i get messaging saying that i can follow the migration guide to setup retool - even though i'm on the latest version of retool. I've seen reference to this being the same messaging that was presented to older software versions, before temporal listed as a hard requirement.)