liquidx/ words/ blog/

Personal Microservices

I'm moving a lot of logic from my local machine into small functions that run on the "cloud" to do my bidding.

Example: This site you're reading this on, is a single Git repository, on GitHub. On each push/merge, it will trigger a site regeneration using GitHub Actions, then deploys the site to Firebase.

This allows me to use whatever tool to create content, whether it's VSCode on my desktop, GitHub's Web UI. In the near-future, I can write another micro service that takes email from myself and create git commits to my blog.

These multiple node workflows have existed for a long time, but usually within a single monolithic system. It mirrors the microservices trend of more distributed computing in commercial settings.

A few thoughts about this

  1. Lots of micro-tasks scattered around the internet makes it hard to know when something has failed. There's a lack of tools for managing this. Even if I try consolidating with one provider like Google/Firebase, the monitoring and control tools are woefully insufficient.
  2. There is no good way to visualize how this is all working. There needs to be something like a Quartz Composer spaghetti monster equivalent that shows you how all the pieces are interconnected and for you to be able to create a new nodes and redirect inputs and outputs.
  3. Authentication and impersonation is difficult. In order for these microservices to act for me, they need to assume my identity. That's hard to get right, and remembering not checking in your credentials and taking care of keys is not straightforward.