Add docs/why-newweaver.md — rationale for the dev/data team - #4
Conversation
Explains why NewWeaver exists and how it fits the DataServices stack, for a technical audience that was surprised by the rewrite. Covers the client-only standards-based architecture, the old Weaver → NewWeaver comparison (PrimeReact, duplicated integration logic, auth surface), the DSDS contribute/consume boundary, the Aqueduct → DIE (Dagster) → Ocotillo/GeoServer ecosystem, the regional planning dashboard, and a glossary. Every non-obvious claim links to the repo file that backs it; team-knowledge framing is flagged as such. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contrasts the old local `die weave` CLI model (duplicated compute, no single source of truth, stale snapshots, Python gatekeeping, no observability) against the hosted Dagster → GCS/GeoServer → NewWeaver pipeline. Grounded in the DIE repo (definitions.py cron graph, resources/gcs.py dated snapshots, AGENTS.md soft-fail asset checks). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Documents the legacy Weaver functionality that NewWeaver must preserve, driven by AMP's hydro-meeting feedback (can't send a link to a live hydrograph). Maps each user need to its current NewWeaver implementation: live datastream chart (DatastreamChart/InspectPanel), time-series CSV export (lib/export/timeSeries), and URL-encoded shareable selection (lib/urlState). Frames regressions here as release blockers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
On the hosted DIE section: while you didn't explicitly state it, are you hinting the that long term the CLI tool is deprecated in favor of the hosted model? Or will a local DIE too always be available for download? |
thats an excellent question. Im leaning towards deprecating the CLI but I could also see it continuing to live if its found to still be useful. Maybe it requires its own fork where DataServices maintain the Dagster version and the CLI is an open source project that the community maintains |
|
I would say if the amount of overhead is minimal in maintaining the human CLI, then maintain for a period time. If the CLI is "expensive" to maintain, or if it is holding DIE back on its potential as a hosted machine-to-machine service, then maybe deprecate. |
nick-tenorio-nmt
left a comment
There was a problem hiding this comment.
on the "what new weaver is" section, you mention four thin clients. however in the "ecosystem fit" digram, there are 5 inputs shown. Maybe the extra one is the two OGC API features (one for USGS one for ocotillo), so perhaps you were referring to type rather than source. perhaps some minor clarification is all that is needed.
Replaces the overstated "CLI is not being deprecated" note with the actual undecided position from PR #4 discussion: keep the CLI while cheap+useful, deprecate if costly or if it holds DIE back as a machine-to-machine service, or split into a community-maintained fork. Hosted Dagster path is the maintained default; local-CLI longevity is an open team decision. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR #4 review: "four thin clients" read as conflicting with the 5 source inputs in the ecosystem diagram. Make explicit that adapters are per-protocol and the single OGC API Features client backs multiple sources (USGS, Ocotillo, GeoServer). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Addressed two review points in the latest push:
🤖 Addressed by Claude Code |
chasetmartin
left a comment
There was a problem hiding this comment.
Notes from a sync with @jirhiker that I think belong near this documentation or at least can be discussed here: mostly upstream questions this doc surfaces but doesn't settle, plus two concrete asks.
On the ecosystem-fit section: the OGC Features layers from Ocotillo don't carry any time-series data, so the path for Ocotillo observations reaching DIE isn't actually pinned down - presumably via Aqueduct or a similar STA server + DAG that Ocotillo owns, but that should be an explicit decision rather than something that emerges.
Related scaling question for the integrated data products from DIE in this proposal: attaching every measurement to a feature would explode the GeoJSON. For manual measurements, observations as a JSON array on the feature is probably fine; for continuous data, requests get very large, and the likely answer is pre-computed files for bulk pulls with the API covering single-well requests. We want one service to do everything, but manual and continuous may genuinely need different serving strategies — worth acknowledging that split here, since it shapes any export UX.
There's also the one-FROST-vs-partition question that came out of the Aqueduct discovery: single shared instance or an Ocotillo vs Aqueduct split (if STA is chosen to serve Ocotillo continuous data)? More context for that decision - WellPy could feed the bureau side with QC control, so it belongs on the ecosystem-governance track and should be flagged for work to be done.
Two asks. First, legacy Weaver links like location/MG-030 are in the wild — bookmarks, reports, emails, and people reach well details through them. At cutover those shouldn't 404; even a message page or an alternate route to that location's info (needs user research). This feels like it belongs in the "what must be kept" section alongside the AMP requirements, and on a cutover checklist.
Second, I think we need a single diagram of ALL sources and downstream apps in the Data Services ecosystem that gets as granular as distinguishing manual water levels from continuous data, and clarifies known Ocotillo vs Aqueduct boundaries if they are defined. It would be nice to get into other details sources such as water chemistry data. An encompassing diagram would carry a lot of weight for the internal team and external communication. I think it would also help us identify plenty of pain points or TODO integrations/maintenance for all products in the ecosystem. This is probably worth its own ticket in a sprint.
None of this blocks the doc, just wanted to write it out here.
|
Also I should have noted in the above comment: I am working on using the content Jake has created here to help in drafting basic roadmaps for the entire |
PR #4 review (chasetmartin): capture the upstream decisions this doc surfaces but doesn't settle — Ocotillo→DIE time-series path, manual-vs-continuous serving split (shapes export UX), one-FROST-vs-partition + WellPy QC, and the ask for a single granular ecosystem diagram (own ticket). Frame as feedstock for the Aqueduct–DIE–Weaver roadmap drafting. Also add legacy `location/{id}` link preservation to "what must be kept" (must not 404 at cutover; needs user research) and seed a cutover checklist. Notes the route is net-new — no location route exists in router.tsx today. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Addressed @chasetmartin's notes in commit
🤖 Addressed by Claude Code |
What
Adds
docs/why-newweaver.md, a technical explainer for the dev/data team on why NewWeaver exists and how it fits the DataServices stack. Audience was surprised + skeptical about the rewrite; this is the shared picture going forward — persuade by substance, not spin.Contents
newweaver.newmexicowaterdata.org, moving toweaver.newmexicowaterdata.org.sources → combine → geoserver) → Ocotillo/GeoServer (Terraform-managed) → NewWeaver reads live over OGC./planningregion decision-support, powered by DIEdie:products, client-only.Notes for reviewers
orchestration/.🤖 Generated with Claude Code