Hourglass architecture - concept capture and references


Status: WIP.

Hourglass architecture, flexibility, optionality and orthogonality are related!

List of references

How do other people describe hourglass architectures? What are threads to follow?

Nikita Tonsky falls backwards into an hourglass architecture fighting “utils”

Source: https://tonsky.me/blog/utils/

Oil shell author is as obsessed with hourglass architectures as I am

Connection to product

Workflow design (collection of problems, flows) - Product design (collection of features, intended use, composition) - Capability design (what are we able to do, what is our oportunity space)


Hourglass architecture in products

By building layered applications where each layer builds on a lower level, designed orthogonally, we gain power in each level.

  1. Infrastructure. Problems to be solved.
  2. Product features.
  3. User workflows.


“multilayer” hourglass architecture?

pandoc - intermediate format

perhaps this is just the “depend on interface” thing?

Principle - high fan out

Ref Osterhout’s “Philosophy of Software Design”

“prefer creating a new deletable module to creating layers”

Application - teod.eu subdomains. “There are many - but they can be deleted”. Application - play.teod.eu pages - “They are many - but they can be deleted”.

Where is legibility?

You might not be able to read something purely from the hierarchy But you’ll know for sure that there aren’t architectural layers that don’t do anything

Hourglass architecture are only possible for suitable problems

If the problem is messy, a clean “narrow waist” solution might not be possible.