« Oatmeal

Cubist microservices

I’ve been reading about microservices lately. We’ve been talking about migrating some common features of our apps and services from impromptu shared libraries over to proper microservices at work.

Martin Fowler describes a microservice as a set of common architectural characteristics:

In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

Wanting to wrap my head around what these could look like and how they could be re-used across multiple projects I wrote two really tiny, sort of stupid microservices myself.

The UUID generator does just that. When called, it generates one UUID and returns that UUID as either plain text, or JSON. Check it out! smallandnearlysilent.com/uuid/

The password generator is just a tiny bit more complicated than the UUID generator. When called, it returns a set of random words. By default it returns 5 random words, but you can specify how many words you would like, and if you would like them as plain text or as JSON. Check it out! smallandnearlysilent.com/battery-staple/

If I end up using them in an actual project one day I’ll probably need to clean up the response formatting a bit.

Neither of my microservices are all that grand, but it has been fun thinking of client/server architectures in terms of microservices. Generally speaking, I’m a fan of simple…or minimal…lightweight. Microservices can help to break a HUGE project into smaller chunks. This fragmentation of capabilities leads me to wonder if software development is entering a sort of cubist phase.


…well, not truly cubist. We’re not talking abstract reconstruction, Gertrude Stein or Picasso here, but I’m intrigued by the way microservices can be used to disassemble a large piece of software and then be used to sort of reconstruct it from the outside. Projection v sculpture? Where microservices are used to project functionality that had previously been hewn into a single block of code.

I don’t really know where I’m going with this. Mostly I miss being able to talk about critical theory and shared close reading, so I try to force that onto my rather non-theoretical worky-job. My coworkers mostly want to focus on the work at hand, which I suppose makes sense. :grimacing:

I’ve been day dreaming about going back to school, or joining a book club, or starting a podcast (which is also an intriguing idea because I like editing audio). In the meantime, I’ve been enjoying writing here, more, and I’ve been reading a lot.

Some things I’ve recently read/started to read/listened to:

  • Mouse Guard: Legends of the Guard Vol. 1, by a whole bunch of folks (the layout of the panels here is phenomenal)
  • Hellboy Vol 4: The Right hand of Doom, by Mike Mignola (I’m a sucker for Hellboy)
  • Valerian & Laureline Vol. 1: The City of Shifting Waters, by Jean-Claude Mézières and Pierre Christin (méh to bad, but supposedly a classic of sorts. I like the coloring, though. If they fall into my lap I’ll probably read more)
  • Space and place: the perspective of experience, Yi-Fu Tuan (for the millionth time)
  • Archive Fever: A Freudian Impression, Derrida
  • Binged all 11 Saga Thing episodes on Njal’s Saga!