<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd" -->

---
title: What is a pattern, and what isn't? | daily.dev
description: An essay argues that the word 'pattern' has suffered semantic diffusion, with techniques, practices, and designs incorrectly labeled as patterns. It defines a...
canonical: https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: What is a pattern, and what isn't? | daily.dev
og:description: An essay argues that the word 'pattern' has suffered semantic diffusion, with techniques, practices, and designs incorrectly labeled as patterns. It defines a...
og:url: https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd
og:image: https://api.daily.dev/og/posts/YwjHQ87Hd.png
og:image:alt: What is a pattern, and what isn't?
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# What is a pattern, and what isn't?

**[Microservices.io](https://daily.dev/sources/microservicesio)** · 15 min read · 24 upvotes · 2 comments

## Summary

An essay argues that the word 'pattern' has suffered semantic diffusion, with techniques, practices, and designs incorrectly labeled as patterns. It defines a pattern as a recurring solution to a problem within a context, including forces, consequences, and relationships to other patterns, and distinguishes a true pattern language (with rich relationships) from a mere pattern collection. The piece compares four historical forms of writing patterns (Alexandrian, Gang of Four, POSA, and Microservices Patterns) using the Saga pattern as a running example, then closes with checklists for authors and readers to verify whether something truly qualifies as a pattern.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <http://microservices.io/post/architecture/2026/10/12/what-is-a-pattern.html>

## Questions this post answers

### What is the formal definition of a software design pattern versus a technique or practice?

A pattern is a recurring solution to a problem within a specific context, one that also describes the forces that make the problem hard, the consequences (benefits, drawbacks, issues) of applying the solution, and its relationships to other patterns (alternatives, predecessors, successors, generalizations, specializations). A solution applied only once is a design; a list of good practices with no single shared problem is a set of practices; a solution described without context and forces is a technique.

_Architects weighing pattern-based tradeoffs can find more framing like this on daily.dev._

### What is the difference between a pattern language and a pattern collection?

A pattern language is a set of patterns with rich relationships between them (alternatives, predecessors, successors, generalizations, specializations) that guide you from one decision to the next, as in the microservice architecture pattern language. A pattern collection, like the patterns in the Gang of Four book, is a set of weakly related patterns that is still useful but does not guide a reader between decisions.

_daily.dev surfaces discussions like this for engineers comparing architectural pattern resources._

### What relationship does the Saga pattern have with the Database per Service pattern in microservices architecture?

Database per Service is a predecessor of Saga, because giving each service its own database creates the data-consistency problem across services that Saga solves. Transactional Outbox and Event Sourcing are successors of Saga, since they solve its issue of atomically updating a database and publishing a message in each saga step.

_Teams designing distributed transactions can track pattern relationships like this via daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@parsasoroush** · 1 upvotes

> The document was so helpful for me, Thank you for Sharing This :)

**@nark3d** · 0 upvotes

> You're right that a pattern collection isn't the same as a pattern language.  A collection with no relationships is easy to fake and still hard to write well.  A catalogue that lists Saga, then lists Compensating Transaction, then never says which one you reach for when the compensation itself fails, has the entries but not the edges.  Readers can't tell the difference from the outside.  Both formats look identical on the page until you try to navigate one, and by then you've already committed to the design.

## Similar posts on daily.dev

- [Design Patterns Suck](https://daily.dev/posts/design-patterns-suck-kei3cx9df) · iamluminousmen · 1 upvotes · 0 comments
- [When Design Patterns Become Rituals](https://daily.dev/posts/when-design-patterns-become-rituals-cnr1hrkja) · We Are .NET · 78 upvotes · 9 comments

---

Tags: [#architecture](https://daily.dev/tags/architecture), [#microservices](https://daily.dev/tags/microservices), [#design-patterns](https://daily.dev/tags/design-patterns)

[View this post on daily.dev](https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"What is a pattern, and what isn't?","url":"https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd"},"datePublished":"2026-10-12T18:40:32.373Z","dateModified":"2026-10-12T18:47:06.921Z","description":"An essay argues that the word 'pattern' has suffered semantic diffusion, with techniques, practices, and designs incorrectly labeled as patterns. It defines a...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/796bb0845402d9566fdd334b3cab7a8b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/796bb0845402d9566fdd334b3cab7a8b?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Microservices.io","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Microservices.io","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/7a511879d50f43698644bcf07f4d0a59","url":"https://daily.dev/sources/microservicesio"},"commentCount":2,"discussionUrl":"https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":24},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":2}],"keywords":"architecture,microservices,design-patterns","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Microservices.io","item":"https://daily.dev/sources/microservicesio"},{"@type":"ListItem","position":3,"name":"What is a pattern, and what isn't?"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd","comment":[{"@type":"Comment","text":"The document was so helpful for me, Thank you for Sharing This :)","datePublished":"2026-10-14T09:57:47.174Z","url":"https://daily.dev/posts/YwjHQ87Hd#c-nejwjWocL","author":{"@type":"Person","name":"Parsa Soroush","url":"https://daily.dev/parsasoroush","image":"https://lh3.googleusercontent.com/a/ACg8ocJDo0PaWPA6Z0XcLprVm82FErNiHzozsgdU3oWSS2D3nXCpV7A=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}},{"@type":"Comment","text":"You’re right that a pattern collection isn’t the same as a pattern language.  A collection with no relationships is easy to fake and still hard to write well.  A catalogue that lists Saga, then lists Compensating Transaction, then never says which one you reach for when the compensation itself fails, has the entries but not the edges.  Readers can’t tell the difference from the outside.  Both formats look identical on the page until you try to navigate one, and by then you’ve already committed to the design.","datePublished":"2026-10-20T10:28:51.093Z","url":"https://daily.dev/posts/YwjHQ87Hd#c-liK87z6FZ","author":{"@type":"Person","name":"Adam","url":"https://daily.dev/nark3d","image":"https://avatars.githubusercontent.com/u/2162621?v=4"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/what-is-a-pattern-and-what-isn-t--ywjhq87hd#faq","mainEntity":[{"@type":"Question","name":"What is the formal definition of a software design pattern versus a technique or practice?","acceptedAnswer":{"@type":"Answer","text":"A pattern is a recurring solution to a problem within a specific context, one that also describes the forces that make the problem hard, the consequences (benefits, drawbacks, issues) of applying the solution, and its relationships to other patterns (alternatives, predecessors, successors, generalizations, specializations). A solution applied only once is a design; a list of good practices with no single shared problem is a set of practices; a solution described without context and forces is a technique. Architects weighing pattern-based tradeoffs can find more framing like this on daily.dev."}},{"@type":"Question","name":"What is the difference between a pattern language and a pattern collection?","acceptedAnswer":{"@type":"Answer","text":"A pattern language is a set of patterns with rich relationships between them (alternatives, predecessors, successors, generalizations, specializations) that guide you from one decision to the next, as in the microservice architecture pattern language. A pattern collection, like the patterns in the Gang of Four book, is a set of weakly related patterns that is still useful but does not guide a reader between decisions. daily.dev surfaces discussions like this for engineers comparing architectural pattern resources."}},{"@type":"Question","name":"What relationship does the Saga pattern have with the Database per Service pattern in microservices architecture?","acceptedAnswer":{"@type":"Answer","text":"Database per Service is a predecessor of Saga, because giving each service its own database creates the data-consistency problem across services that Saga solves. Transactional Outbox and Event Sourcing are successors of Saga, since they solve its issue of atomically updating a database and publishing a message in each saga step. Teams designing distributed transactions can track pattern relationships like this via daily.dev."}}]}
```

