Why? What? How?
nelsonic opened this issue Β· 51 comments
The home page https://temporal.io is a classic landing page ... tells me nothing
Lots of social proof: π
This homepage has told me exactly zero of What I'm looking at or How it works. π€¦ββοΈ
The hero text at the top of the Use Cases page https://temporal.io/use-cases is more social proof noise:
Keep scrolling and it's logos ...
At no point do they actually give any inkling what the actual use case might be!! π‘
Busy watching this: Designing a Workflow Engine from First Principles: https://youtu.be/t524U9CixZ0 πΊ β³
"Transfer queue mechanism" ...
Wow. talk could have been 5 minutes. talk about dragging it out. π
Next:
Complete Intro to Temporal Workshop - TypeScript SDK: https://youtu.be/CeHSmv8oF_4
Published Dec 4, 2021 ... 3 months ago. Is this even still relevant? Surely there are like 10 new frameworks since then!
While I wait ...
Watching this quick intro: https://youtu.be/2HjnQlnA5eY
https://github.com/temporalio/sdk-typescript 220 stars ... super popular.
Build failing.
https://github.com/temporalio/sdk-typescript/runs/5457647957?check_suite_focus=true
Bodes well.
Following the getting started guide: https://docs.temporal.io/docs/typescript/introduction/#getting-started
Bunch of warnings:
To begin development, start Temporal Server:
cd ~/path/to/temporal/docker-compose/
docker-compose up
If you havenβt run Temporal Server before, visit:
https://docs.temporal.io/docs/typescript/getting-started/
Then, in the project directory, using two other shells, run these commands:
npm run start.watch
npm run workflow
Got the following error:
[nodemon] starting `ts-node src/worker.ts`
Found prebuilt bridge module {
binary: '/Users/n/code/learn-temporal/example/node_modules/@temporalio/core-bridge/releases/x86_64-apple-darwin/index.node'
}
[TransportError: Server connection error: tonic::transport::Error(Transport, hyper::Error(Connect, ConnectError("tcp connect error", Os { code: 61, kind: ConnectionRefused, message: "Connection refused" })))]
[nodemon] app crashed - waiting for file changes before starting...
https://temporalio-samplestypesc-kf9hweoq2a6.ws-eu34.gitpod.io/
Hello World Walkthrough in TypeScript:
https://docs.temporal.io/docs/typescript/hello-world/
I can certainly see the benefits Temporal.
But the learning curve is steep ...
The temporal forum has only 3 threads for the typescript-sdk
tag:
https://community.temporal.io/tag/typescript-sdk
Not very active ... π
"a real life production deployment can have 5 Frontend, 15 History, 17 Matching, and 3 Worker services per cluster."
https://docs.temporal.io/docs/concepts/what-is-a-temporal-cluster
https://docs.temporal.io/docs/concepts/what-is-a-temporal-cluster#database
Cassandra, MySQL, and PostgreSQL schemas are supported and thus can be used as the Server's database.
So at the heart of Temporal is a database.
Inevitably most people will use Cassandra because it's soooo scalable ...
https://en.wikipedia.org/wiki/Apache_Cassandra
Going to try and run everything on localhost
instead.
Read this while waiting ... https://docs.temporal.io/docs/server/production-deployment/
$ docker-compose up
Error response from daemon: dial unix /Users/n/Library/Containers/com.docker.docker/Data/docker.raw.sock: connect: no such file or directory
Trying to run the sample container:
docker run -d -p 80:80 docker/getting-started
Seeing:
Unable to find image 'docker/getting-started:latest' locally
latest: Pulling from docker/getting-started
59bf1c3509f3: Pull complete
8d6ba530f648: Pull complete
5288d7ad7a7f: Pull complete
39e51c61c033: Pull complete
ee6f71c6f4a8: Pull complete
f2303c6c8865: Pull complete
0645fddcff40: Pull complete
d05ee95f5d2f: Pull complete
Digest: sha256:aa945bdff163395d3293834697fa91fd4c725f47093ec499f27bc032dc1bdd16
Status: Downloaded newer image for docker/getting-started:latest
64ba27e3e31ba2efe50f5f3a2a12ba5094686dab3cf1fbcb40def900de78065e
Attempting to run docker-compose up -d
Get the following error:
Creating network "temporal-network" with driver "bridge"
Creating temporal-elasticsearch ... error
Creating temporal-postgresql ...
ERROR: for temporal-elasticsearch Cannot create container for service elasticsearch: Conflict. The container name "/temporal-elasticsearch" is already in use by container "830fbd148bb1f4e3422901f7ab362f09b40219a
Creating temporal-postgresql ... error
ERROR: for temporal-postgresql Cannot create container for service postgresql: Conflict. The container name "/temporal-postgresql" is already in use by container "ed97ad218913ad6d2a2d5ac2fbd13a81e51d7250e002e4ec693b0f63a18d76bc". You have to remove (or rename) that container to be able to reuse that name.
ERROR: for elasticsearch Cannot create container for service elasticsearch: Conflict. The container name "/temporal-elasticsearch" is already in use by container "830fbd148bb1f4e3422901f7ab362f09b40219ae4d4e82abda8d3f99d36dd16e". You have to remove (or rename) that container to be able to reuse that name.
ERROR: for postgresql Cannot create container for service postgresql: Conflict. The container name "/temporal-postgresql" is already in use by container "ed97ad218913ad6d2a2d5ac2fbd13a81e51d7250e002e4ec693b0f63a18d76bc". You have to remove (or rename) that container to be able to reuse that name.
ERROR: Encountered errors while bringing up the project.
n@MBP docker-compose % docker-compose down --remove-orphans
Removing network temporal-network
n@MBP docker-compose % docker-compose up -d
Creating network "temporal-network" with driver "bridge"
Creating temporal-postgresql ...
Creating temporal-elasticsearch ... error
ERROR: for temporal-elasticsearch Cannot create container for service elasticsearch: Conflict. The contai
Creating temporal-postgresql ... error
e4d4e82abda8d3f99d36dd16e". You have to remove (or rename) that container to be able to reuse that name.
ERROR: for temporal-postgresql Cannot create container for service postgresql: Conflict. The container name "/temporal-postgresql" is already in use by container "ed97ad218913ad6d2a2d5ac2fbd13a81e51d7250e002e4ec693b0f63a18d76bc". You have to remove (or rename) that container to be able to reuse that name.
ERROR: for elasticsearch Cannot create container for service elasticsearch: Conflict. The container name "/temporal-elasticsearch" is already in use by container "830fbd148bb1f4e3422901f7ab362f09b40219ae4d4e82abda8d3f99d36dd16e". You have to remove (or rename) that container to be able to reuse that name.
ERROR: for postgresql Cannot create container for service postgresql: Conflict. The container name "/temporal-postgresql" is already in use by container "ed97ad218913ad6d2a2d5ac2fbd13a81e51d7250e002e4ec693b0f63a18d76bc". You have to remove (or rename) that container to be able to reuse that name.
ERROR: Encountered errors while bringing up the project.
Thankfully - or sadly depending on your view - this is an issue many people have faced before.
Google search surfaces the following thread: moby/moby#23371
Good thing Docker is so efficient and doesn't take up any space on your SSD ...
Ran:
docker container prune
Purged all the Docker Containers and re-created them to test how long it would take.
Obviously Docker only removed the volumes but not the downloaded dependencies so in actual fact they weren't "purged" at all.
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
[61540] Failed to execute script docker-compose
Had to delete
the previous docker containers and re-create them. Then it worked.
This is hilarious, and also on the first page of Google for "learn temporal" :) Actually managed to get the darn thing setup after reading through your posts..