docs(proposal): rewrite foundations — manifesto, architecture, plan#78
docs(proposal): rewrite foundations — manifesto, architecture, plan#78JesuFemi-O wants to merge 2 commits into
Conversation
Three-document proposal for rewriting the Tycoon CLI's ingestion layer under a new set of abstractions, with the goal of evolving toward a stack-aware control plane (BYOS, agent-latchable, deliberately not a platform). - MANIFESTO.md — philosophy and shape (control plane vs platform, BYOS, the nine compartments, progressive disclosure, scaffolding charter) - ARCHITECTURE.md — C4-shaped structure from system boundary down to the proposed source tree, with adapter interface sketches and layering rules - PLAN.md — execution plan: rewrite-not-refactor decision, naming (_tycoon/ during rewrite window, tycli entrypoint, cutover to src/tycoon/ when Fivetran adapter lands with zero core changes), four-step sequencing, port list and don't-port list, risks - README.md — index pointing readers at the three docs in reading order Draft PR; discussion happens on the accompanying issue.
|
Review of the rewrite proposal — direction is right; go in-place, keep dbt, reconcile some naming Strong proposal. The layered structure (manifesto → architecture → plan) reads well, the C4 framing fits, and the control-plane-vs-platform distinction is applied consistently rather than just asserted. I'm aligned on the positioning, BYOS, the typed-API-with-thin-CLI commitment (D3), and the dlt+Fivetran POC pairing. Two scope calls and a handful of internal contradictions to settle, then this is good to go. 1. Rewrite in-place — drop the 2. dbt (Transformation) stays in POC scope; web server / Dagster / The rest of the don't-port list is confirmed dropped — FastAPI server ( So POC scope = three runtime modes ( 3. Internal contradictions to reconcile (objective, not preferences):
One suggestion, not a blocker: the "add Fivetran with zero core changes" acceptance test is the right centerpiece. Make it explicitly check the one failure mode most likely to slip through — dlt emits a live event stream while Fivetran can only poll; if that push-vs-pull difference leaks into Net: green light on direction. Update the plan for the two scope calls + the naming reconciliation and I think we're there. |
…ite, dbt in POC, push-vs-pull test - Command name, package path, metadata dir, and dbty prose all reconciled to tycoon throughout (3a–d) - D1/D2 rewritten: parallel-package + tycli dropped in favour of a long-lived feature branch directly in src/tycoon/ (feedback #1) - D5 updated: dbt Transformation adapter added to POC scope to exercise a second adapter shape alongside Runtime (feedback #2) - Phase 2 acceptance test sharpened: push-vs-pull (dlt streams, Fivetran polls) named as the specific failure mode to watch for; added to risks table (feedback #4)
Refs #79
Summary
Draft proposal for rewriting the Tycoon CLI's ingestion layer (and laying foundations for the rest of the control plane) under a new set of abstractions. This PR is the artifact — three documents and an index — not an implementation. Discussion happens on the accompanying issue; reviewers point here for detail.
The proposal pursues a stack-aware control plane positioning (BYOS, agent-latchable, deliberately not a platform). Adjacent tools in the category are platform-shaped; the proposal makes the control-plane vs. platform distinction load-bearing and uses it to constrain every subsequent design choice.
What's in this PR
docs/proposals/_tycoon/MANIFESTO.mddocs/proposals/_tycoon/ARCHITECTURE.mddocs/proposals/_tycoon/PLAN.md_tycoonduring rewrite window,tyclientrypoint, cutover criteria), four-step sequencing, port list and don't-port list, risksdocs/proposals/_tycoon/README.mdThe decisions this proposal asks reviewers to react to
src/_tycoon/, port four named patterns fromsrc/tycoon/, cutover when Fivetran adapter lands with zero core changes (PLAN §D1)What this PR does not do
src/tycoon/packageStatus
Draft. Iterating in response to issue discussion. Marked ready-for-review once the proposal stabilizes; merged once the team aligns on direction. Implementation work happens in subsequent PRs, scoped against PLAN.md's four-step sequencing.
Naming note
The author used
dbty/dbty-cliin conversation as personal shorthand for Database Tycoon (the company). All three documents preserve that shorthand where rewriting would obscure the original framing. The tool itself is the Tycoon CLI (repotycoon-cli, PyPIdatabase-tycoon). The README and the top of each document make this explicit.Test plan
Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.