Skip to content

Seam

A place in a system where behaviour can be substituted without editing the code around it.

Last reviewed

A seam is a place where you can change what a program does without editing the code on either side of it. Tests use seams; so does every adapter. The number of seams a system needs is usually smaller than the number it has.

Referenced by

Most of what a module will cost you is settled by its interface, before a line of its body is written.

I put the schema where I could see it instead of where the writes happen, and then trusted it for two months.

---
title: "Seam"
description: "A place in a system where behaviour can be substituted without editing the code around it."
url: "https://lateano.com/glossary/seam"
author: "Colin Lateano"
lastReviewed: "2026-05-30"
aliases: []
tags:
  - title: "How I work"
    url: "https://lateano.com/tags/how-i-work"
referencingPosts:
  - title: "The interface is the decision"
    url: "https://lateano.com/writing/the-interface-is-the-decision"
  - title: "What I got wrong about validation"
    url: "https://lateano.com/writing/what-i-got-wrong-about-validation"
---

# Seam

A place in a system where behaviour can be substituted without editing the code around it.

A seam is a place where you can change what a program does without editing the code on either side of it. Tests use seams; so does every adapter. The number of seams a system needs is usually smaller than the number it has.