Drew this up with tl;draw

Flow diagram for a laundry timer

Where I started is wanting to leverage temporal to do something interesting, and tackling a real (if small) problem I have: forgetting I have a load of laundry running.

The requirements were:

  • Easy to start (otherwise I wouldn’t actually use it)
  • Ability to push notifications to me, repeatedly (otherwise I might ignore them)

What I settled on:

  • Slack for notifications
    • I am using the Slack App as a hacky way to avoid having to build a notification mechanism. I know slack notifications will make it to my phone, and I can control whether I get dinged or not, so went with that instead of thinking too hard about other ways to buzz my phone.
    • This also meant that I could use the Slack SDK’s for small bits of feedback to the app.
    • Also, using socket-mode meant I didn’t have to have a public endpoint on my infra, and could be behind a NAT, simplifying some things with network security.

Things I learned along the way:

  • Signals vs. async completed activities
    • Temporal SDK in python, how signals work
      • this thread clarifying my confusion on wait_condition
  • Slack Blocks
  • Temporal dev deployment
  • minikube
    • I went for a GKE cluster for this, which was again totally overkill, but I wanted to get more familiar with kubernetes. You can get a single node cluster for ~$15 a month (I think it’s like $22/mo w/ a NAT). There’s way cheaper ways to run something this simple, but here we are.