Why this conversation
The argument for a single source of truth, made with the cost of the current state rather than the elegance of the proposed one.
Dialogue
Marek: The devnet URL is in six places and two are wrong. Let's put chains in rails and import from there.
Priya: It's a URL. A package for a URL is overkill.
Jay: It's a URL, a chain id, a WebSocket endpoint, an explorer, and the block time, times three chains. That's fifteen facts, and today they have six homes each.
Priya: Most of them never change.
Jay: The devnet address changed twice this week. And the cost isn't editing six files; it's the day we edit five and debug the sixth.
Priya: Fine, but rabbit deploys from source. It can't depend on a local path.
Jay: Good catch. Then rabbit copies the file and says in the header that rails is canonical. One home for the fact, and the copies know they're copies.
Marek: I'll add a check that diffs the copy against rails in CI.
Jay: Then it's a cache with a freshness check, which is the only kind of copy I trust.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| six places and two are wrong | 여섯 곳, 그중 둘은 틀림 |
| overkill | 과한 것 |
| fifteen facts with six homes each | 각각 집이 여섯인 사실 열다섯 |
| most of them never change | 대부분 바뀌지 않는다 |
| edit five and debug the sixth | 다섯을 고치고 여섯 번째를 디버깅하다 |
| deploys from source | 소스에서 배포한다 |
| good catch | 잘 잡았다 |
| canonical | 정본인 |
| the copies know they're copies | 복사본이 자기가 복사본임을 안다 |
| a cache with a freshness check | 신선도 검사가 있는 캐시 |