Skip to content

Instantly share code, notes, and snippets.

@acolyer
acolyer / service-checklist.md
Last active July 10, 2024 05:13
Internet Scale Services Checklist

Internet Scale Services Checklist

A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."

Basic tenets

  • Does the design expect failures to happen regularly and handle them gracefully?
  • Have we kept things as simple as possible?
(defmacro better-if-let
([bindings then]
`(better-if-let ~bindings ~then nil))
([[form tst & rest-bindings] then else]
`(let [temp# ~tst]
(if temp#
(let [~form temp#]
~(if (seq rest-bindings)
`(better-if-let ~(vec rest-bindings) ~then ~else)
then))