Systems Don't Exist but Definitions Do
Posted2 months ago
tangrammer.codeberg.pageTechstory
calmpositive
Debate
10/100
ClojureSoftware DesignPhilosophy of Programming
Key topics
Clojure
Software Design
Philosophy of Programming
The author argues that the concept of 'systems' is vague and that focusing on definitions is more productive in software development, sparking a discussion on the nature of programming and design.
Snapshot generated from the HN discussion
Discussion Activity
Light discussionFirst comment
N/A
Peak period
1
Start
Avg / period
1
Key moments
- 01Story posted
Oct 31, 2025 at 4:58 PM EDT
2 months ago
Step 01 - 02First comment
Oct 31, 2025 at 4:58 PM EDT
0s after posting
Step 02 - 03Peak activity
1 comments in Start
Hottest window of the conversation
Step 03 - 04Latest activity
Oct 31, 2025 at 4:58 PM EDT
2 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45776620Type: storyLast synced: 11/17/2025, 8:11:19 AM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
If systems are just collections of definitions, why do we scatter those definitions across code, diagrams, wikis, Slack threads, and tribal knowledge?
This article explores compound identities —using sets of semantic keywords instead of flat strings to define system entities. The key insight: `#{:semantic-namespace/error :domain.payment/timeout}` reads like plain English ("an error in the payment domain, specifically a timeout"), and becomes queryable:
```clojure ;; What can go wrong with payments? (find-docs #{:domain.payment})
;; What are all critical errors? (find-docs #{:severity/critical}) ```
A mid-sized project has 500-1000 such definitions (errors, events, endpoints, metrics, permissions, etc.). Right now they're scattered. What if they were unified, typed, and queryable in one registry?
The system becomes self-describing. Everything else (API docs, monitoring dashboards, tests) can be generated from the definitions.
Built in Clojure but the concept applies broadly. Would love feedback on the approach.