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.
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.