I’ve been doing a bit of work with Temporal using it’s Python SDK. Temporal remains one of my favorite pieces of technology to work with. The team is very thoughtful with their API design and it provides a clean abstraction for building distributed, resilient workflows. It’s a piece of technology that is difficult to understand until you build with it, and once you do, you find applications for it everywhere you look. I highly recommend experimenting with it if you’re unfamiliar.

This tutorial is a nice starting point if you’re ok working in Python. I’m still relearning what can and can’t go in workflows and activities, so starting with the basics and iterating with these primitives has been helpful. If you end up creating a project with multiple packages, you may find the snippet below helpful to run a worker or a script to start a workflow from your project root.

python -m temporalapp.worker

That assumes a project structure that looks something like this

.
└── temporalapp
    ├── __init__.py
    ├── activity
    │   ├── __init__.py
    │   └── greeting.py
    ├── entity
    │   ├── __init__.py
    │   └── greeting.py
    ├── start_workflow.py
    ├── worker.py
    └── workflow
        ├── __init__.py
        └── greeting.py