temporal

I was recently going through how to get Temporal going on fly via the How Temporal Auto-Setup Works | Temporal Technologies

The scripts are not the best i have to admit but not terrible. You can also just use docker.

What is Temporal ?

Temporal is a workflow & activity runner that is able to restart and is designed for failure.

It is a good match for fly because Temporal cluster could easily run on fly and its CDN using the Fly master / slave postresql setup.

Oh I’m glad you’re looking at this! We’ve been interested in showing Temporal on Fly.

I think the simplest way to launch this might be to create individual apps for each part of their Docker compose + Postgres file:

You can use our fly pg create to get Postgres, then install the others individuall.

thanks @kurt for the tip…

I wil give it a go when i get time… Things are too busy…

I am working on getting TimeScaleDB running on Fly because i need the metrics.
Turns out that the same approach of first using fly pg create, and then adding Timescale DB is the way to do it. Its documented here: How to Enable TimescaleDB on an Existing PostgreSQL Database | Severalnines.

So basically the same pattern.

Since a common pattern is emerging, it would be useful for me and others if a fly github repo for each was setup to help everyone with this eventually… Everyone is short on time i know… But it just seems like such a standard 2 things so many people need. Metrics and Workflows.

1 Like

Any luck with this?

This is fairly simple actually (at least with a non-clustered, singleton temporal deployment with all services in one app, but likely also when deploying the individual services separately).

I put together a quick & dirty demo here: GitHub - fubhy/temporal-fly

Note: This is obviously the bare minimum… Without metrics, no externally exposed port for the UI, etc. (probably not desirable but depends on your use-case), no health checks, etc. … But it works as a starting point :wink:

Any known progress on this outside of this thread or the sample deployment by @fubhy?

Hi, anyone have success w/ the latest temporal images? I’m able to run the temporal server + pg db but I’m having trouble getting clients to connect to it.

I have POSTGRES_* env variables set in the Dockerfile and include
ENV BIND_ON_IP=0.0.0.0
EXPOSE 7233

I can ssh into the temporal app and run
tctl cluster health => SERVING

When I try to connect to the flyapp, the connection times out, eg:
grpcurl -plaintext myapp.fly.dev:7233 list

TIA

Edit: Nvm, got everything to work.

Hi how do you solve this problem? I’m also running into this issue

I had to set the connection to tls and 443 so fly can terminate the TLS and the HTTP/2 to properly handle grpc:

[[services.ports]]
handlers = ["tls"]
port = 443
[services.ports.tls_options]
alpn = ["h2"]

The temporal client should set the connection option: tls: true. This is just the encryption from the client to the fly server, which will downgrade the tls connection for its internal connections.

But… you probably don’t want to expose your Temporal Server to public access… so don’t include the configuration above and have your web server communicate w/ the temporal server internally via your-temporal-server.internal:7233 without the tls prop.

1 Like

Hello,

You repo is not accessible. I’m interested in learning how to run temporal on fly as well.

Cheers,
Owen