Skip to content

Evaluate advert route-evidence semantics against our existing route_mask implementation (upstream 2088) #218

Open

Description

@dborup

Deferred evaluation

Compare our existing route-mask implementation with upstream PR 2088, merged on 2026-10-03. We already preserve route evidence. This is a semantic/API gap assessment, not a request to install a second storage mechanism.

Snapshot checked 2026-10-04: our master 8bafcdf2a6bb0014127bce4822c8ad0399bd2f12, upstream master 9e49db9725d6346959c41ec23c66d96b7e43cc4c.

What upstream does / potential benefit

Upstream retains bounded advert route evidence, classifies adverts from that evidence and uses it in advert analytics and node flood counts. Its contract distinguishes flood evidence, direct-with-empty-path evidence, mixed evidence and other/unknown cases. Analytics-evidence write failures are reported without blocking core observation/path/liveness updates.

Potential value for us is more explicit classification, consistency between analytics consumers and resilient ingest behavior—not simply another route-history feature.

What we already have / concrete differences

Risks / boundaries

Do not copy the upstream evidence table or backfill over our existing schema without a demonstrated need. Historical overwritten observations cannot be reconstructed reliably. All database writes must remain ingestor-owned; the server remains read-only. An empty remaining path is not proof of original send mode or RF proximity.

Evaluation checklist

  • Build a contract matrix for flood, transport flood, direct empty/non-empty paths, mixed, malformed and missing evidence.
  • Compare analytics, node counts, cold/chunked load, live refresh and restart behavior against the same fixtures.
  • Compare evidence-write failure handling; decide which updates must remain atomic and which may fail independently.
  • Document consumer compatibility and unknown/backfill semantics before proposing any API change.
  • Benchmark ingest overhead, memory, backfill and query cost on a realistic database copy if a change is proposed.
  • Decide: keep ours, adapt a specific semantic improvement, or pursue a separate compatibility/migration design.

The corresponding node-page presentation assessment is #219 and should remain separate from this backend contract decision. No production migration or backfill is authorized by this issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions