meshery / meshery/meshsync

MeshSync: composite fingerprints spanning multiple entities (design)

Open
#579 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
90
Forks
96
PR merge metrics
No merged PRs in 30d

Description

## Summary
Correlate the individually-discovered objects that compose one application (Deployment + Service + ConfigMap + ...) into a named group, and identify the tool/version behind it. Today every object is published and persisted in isolation.

## Key decisions
- **Correlate server-side, not in MeshSync** - informer events arrive out of order and MeshSync forbids cross-run pipeline state; Server has the full per-cluster DB and an existing async registration-queue hook.
- Schema-first: two additive `v1beta1` constructs (`application_group`, `relationship_instance`) that **reuse the existing RelationshipDefinition taxonomy** - `sibling.matchlabels` for same-app grouping (porting the existing MatchLabelsPolicy algorithm to runtime rows) and `hierarchical.inventory.parent` for owner-references. Grouping key tiers: `app.kubernetes.io/instance` -> `/part-of` -> `/name`.
- Replaces the acknowledged `getTypeOfConnection` substring hack in `auto_register.go` (which already carries an `// Improve this fingerprinting` comment) with a real fingerprint lookup; fallback preserved.

## Scope / phasing
Phase 1: label-based grouping (~2 wks). Phase 2: builder-pattern tool+version identification with confidence/evidence.

**Risks flagged:** never fabricate group keys when labels are absent; prefer `/instance` over broad `/part-of` to avoid over-grouping; fix delete-cascade orphaned `relationship_instance` rows.

## Full design
[docs/design/fd3-composite-fingerprints.md](https://github.com/meshery/meshsync/blob/master/docs/design/fd3-composite-fingerprints.md) (added in #576).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read docs/design/fd3-composite-fingerprints.md first, then inspect auto_register.go and its existing fingerprinting comment, along with the server registration-queue path. Use the Phase 1 scope and stated schema, grouping, fallback, and delete-cascade risks to define completion; the design's later tool/version identification is Phase 2.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend-api-design, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.