AI Skill Report Card
Federating Distributed Knowledge
Quick Start14 / 15
Given a request to federate knowledge across sources (teams, systems, domains), produce three deliverables in order:
- Knowledge Map — inventory of knowledge nodes, their owners, formats, and relationships
- Federation Design — architecture defining how nodes connect, authority boundaries, and access rules
- Sync Strategy — mechanism and cadence for propagating updates, resolving conflicts, and handling divergence
Example minimal output skeleton:
Recommendation▾
Add a brief note on how to handle nodes with no clear owner (ambiguous authority) as an edge case
Knowledge Map
- Node: [name] | Owner: [team/system] | Format: [doc/db/API] | Depends on: [nodes]
Federation Design
- Topology: [hub-spoke / mesh / hierarchical]
- Authority: [source of truth per domain]
- Access: [read/write rules between nodes]
Sync Strategy
- Mechanism: [push/pull/event-driven]
- Frequency: [real-time/batch/on-demand]
- Conflict resolution: [rule]
Workflow14 / 15
Progress:
- Step 1: Identify all knowledge sources/nodes and their current isolation boundaries
- Step 2: Classify each node by type (authoritative, derived, cached, mirrored)
- Step 3: Map dependencies and overlaps between nodes (where duplication or contradiction exists)
- Step 4: Choose a federation topology (hub-spoke, mesh, hierarchical, or federated-query)
- Step 5: Define authority rules — which node is the source of truth for each knowledge domain
- Step 6: Define sync mechanism — push, pull, event-driven, or hybrid — and update cadence
- Step 7: Define conflict resolution rules (timestamp wins, authority wins, manual merge)
- Step 8: Output the three deliverables: Knowledge Map, Federation Design, Sync Strategy
Step 1-3 detail: Ask/infer: what systems hold knowledge (wikis, databases, APIs, people)? What's the overlap? Where does the same fact live in two places with risk of drift?
Step 4 detail — topology defaults:
- Hub-spoke: one central authority, others sync to/from it. Use when there's a clear canonical source.
- Mesh: peer nodes sync directly with each other. Use for small number of equally-authoritative nodes.
- Hierarchical: tiered federation (local → regional → global). Use for org structures with layered scope.
- Federated-query: no data movement, queries fan out live. Use when data can't be duplicated (compliance, size).
Step 6 detail — sync defaults:
- Real-time/event-driven: for operational knowledge (status, metrics)
- Batch/scheduled: for reference knowledge (docs, policies) — daily/weekly is usually sufficient
- On-demand/pull: for rarely-changing or low-priority nodes
Recommendation▾
Include a third example with a failure/anti-pattern outcome to show contrast, not just successful designs
Examples18 / 20
Example 1: Input: "Federate knowledge across 3 regional support teams (US, EU, APAC) who each maintain their own troubleshooting docs, with HQ wanting a unified knowledge base."
Output:
Recommendation▾
Consider a short section on tooling/technology choices (e.g., specific sync tools) to bridge design to implementation
Knowledge Map
- Node: US-Support-KB | Owner: US team | Format: Confluence | Overlaps: EU-KB (shared products)
- Node: EU-Support-KB | Owner: EU team | Format: Confluence | Overlaps: US-KB, APAC-KB
- Node: APAC-Support-KB | Owner: APAC team | Format: Notion | Overlaps: EU-KB
- Node: HQ-Unified-KB | Owner: HQ | Format: TBD | Depends on: all three regional nodes
Federation Design
- Topology: Hub-spoke (HQ as hub, regions as spokes)
- Authority: Each region is authoritative for region-specific issues; HQ is authoritative for global/product-level knowledge
- Access: Regions push updates to HQ; HQ read-only mirrors visible to all regions
Sync Strategy
- Mechanism: Event-driven push on doc update + nightly batch reconciliation
- Frequency: Real-time push for critical fixes, daily batch for general edits
- Conflict resolution: Region-specific content wins locally; global content conflicts escalate to HQ curator for manual merge
**Example 2:**
Input: "Two engineering teams have separate architecture decision records (ADRs) that reference shared services. Need consistency without merging repos."
Output:
Knowledge Map
- Node: Team-A-ADRs | Format: Markdown in repo A | Refs: Shared-Service-X
- Node: Team-B-ADRs | Format: Markdown in repo B | Refs: Shared-Service-X
- Node: Shared-Service-X-Contract | Owner: neither team exclusively | Currently undocumented centrally
Federation Design
- Topology: Mesh with a shared reference node (Shared-Service-X-Contract) as tiebreaker
- Authority: Each team owns its own ADRs; the shared contract doc is jointly owned, edited via PR requiring both teams' approval
- Access: Both teams have read access to each other's ADRs via cross-linking; write access is repo-scoped
Sync Strategy
- Mechanism: Pull-based — CI job scans both repos for references to Shared-Service-X and flags drift
- Frequency: On every merge to main (event-driven check), weekly digest summary
- Conflict resolution: Contradictions in shared contract require joint review meeting; ADRs are otherwise not merged, just cross-referenced
Best Practices
- Always distinguish authoritative nodes from derived/cached ones — federation collapses without a clear source of truth per domain.
- Prefer federated-query over data duplication when data is large, sensitive, or changes fast — sync lag causes more harm than query latency.
- Make conflict resolution rules explicit and deterministic before sync begins; "figure it out later" causes silent knowledge drift.
- Keep the Knowledge Map as a living artifact — it should be re-generated whenever nodes are added/removed, not written once.
- Match sync frequency to volatility: don't real-time-sync rarely-changing reference docs, don't batch-sync operational/critical data.
Common Pitfalls
- Don't design a mesh topology for more than ~5 nodes — pairwise sync complexity grows quadratically; switch to hub-spoke or hierarchical.
- Don't skip the authority-mapping step — federating without clear ownership leads to overwritten or contradictory "truths."
- Don't assume push-based sync is always better — it creates tight coupling; use pull or event-driven when nodes should stay independently deployable.
- Don't merge conflict resolution into "manual review" for everything — define automatic rules (timestamp, authority precedence) for the majority case, reserve manual review for true ambiguity.