C.W.K.
Stream
Lesson 05 of 05 · published

Reuse Preserves Ownership

~11 min · ownership, integration, grammar-vs-storage, rule-2

Level 0Unmarked Path
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Borrow the grammar. Never borrow the database. Integration is not absorption."

The Rule Under Every Reuse

Every reuse in this track rests on one sentence: integration never transfers ownership. Waystone integrates deeply with Pippa, Rekindle, Recall, and Lantern — and after all that integration, each of those siblings still owns exactly what it owned before. Reuse carries forward the already-learned contract while the canonical owner stays canonical. The failure mode has a name: absorption, where "we integrated with X" quietly becomes "we now keep X's data" or "we copied X's code and it's ours now."

The Cleanest Example: Grammar Without Storage

Waystone's breadcrumb stream is inspired by the family's existing social-style stream. It reuses the interaction grammar — a compact composer, short posts in a scannable timeline, replies for follow-up fragments, threads, media previews, draft preservation. But it assigns its own travel semantics: a post is a Breadcrumb, a reply is another fragment of the same developing moment, a thread is a candidate event cluster (not a social conversation), a pin becomes Important Moment. And here is the crucial half: it inherits none of the stream's emotion, visibility, moderation, likes, public authorship, or storage. Waystone reuses the shape and keeps its own data at home. That is the whole distinction in one feature.

Extract Is Allowed; Clone Is Not

There is a legitimate middle path: if two siblings genuinely need the same UI primitive, refactor it into an actually generic shared piece with an explicit owner. That is Extract on the ledger, and it is healthy. What is forbidden is the lazy version — copy the implementation into your repo and edit it locally. That produces a fork with no owner, and it drifts the day either side improves. The cost of doing it properly is absorbed by the sibling that needs the capability, not pushed onto the sibling that owns it. Reuse is only reuse if, afterward, there is still exactly one canonical implementation of the thing.

Code

Reuse the grammar, keep the ownership·text
REUSED from the family's stream (the interaction grammar):
  compact composer, short posts, scannable timeline,
  replies, threads, media previews, draft preservation

REASSIGNED to travel semantics (Waystone's own meaning):
  post   -> Breadcrumb
  reply  -> another fragment of the same moment
  thread -> candidate event cluster (not a social conversation)
  pin    -> Important Moment / Include in Story

NOT INHERITED (stays with the owner):
  emotion, visibility, moderation, likes, public authorship,
  and the stream's canonical storage

# Borrow the shape. Keep your data at home.

External links

Exercise

Find a place where your codebase (or your team) integrated with another system. Check what actually happened: did you call their canonical API, or did you copy their code / store your data in their tables 'for now'? If it's a copy, ask when it last matched the original. Every clone has a divergence date — the only question is whether you know it yet.
Hint
The ownership test after an integration: is there still exactly ONE canonical implementation, or are there two that agree today and will disagree later? Copies don't announce their drift; they just quietly stop matching, and you find out from a bug that makes no sense in either repo alone.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.