Mermaid Block Diagram with MAIDR

Blocks are read inside the composite blocks that hold them, along the edges between them.

block
  columns 3
  client["Client"] space server["Server"]
  block:storage:3
    cache["Cache"] db[("Database")]
  end
  client --> server
  server --> cache
  server --> db