
Microservices Analyst
- 26 installs
- 7 repo stars
- Updated May 20, 2026
- daemon-blockint-tech/agentic-enteprises-skill
Guides analysis of existing microservice estates: service/API inventory, dependency and coupling maps, SLO coverage gaps, API drift, blast radius, and consolidation recommendations.
About
Guides analysis of live microservice estates, covering service/API inventory, dependency and coupling mapping, observability/SLO gaps, version skew, contract drift, and blast radius. An analyst uses it to assess estate health and recommend consolidation, strangler slices, or decomposition with evidence.
- Dependency and coupling maps of sync chains and shared-DB smells
- Evidence-based consolidation/decomposition recommendations with hotspots
Microservices Analyst by the numbers
- 26 all-time installs (skills.sh)
- Ranked #3,410 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/daemon-blockint-tech/agentic-enteprises-skill --skill microservices-analystAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 26 |
|---|---|
| repo stars | ★ 7 |
| Last updated | May 20, 2026 |
| Repository | daemon-blockint-tech/agentic-enteprises-skill ↗ |
What it does
Guides analysis of existing microservice estates: service/API inventory, dependency and coupling maps, SLO coverage gaps, API drift, blast radius, and consolidation recommendations.
Files
Microservices Analyst
When to Use
- Inventory an existing microservice estate (services, APIs, owners, runtimes, repos)
- Map dependencies and coupling (sync call chains, fan-in/out, shared DBs, shared libraries)
- Assess observability and SLO coverage, alert quality, and on-call pain per service
- Find deployment and version skew (stale images, drifted configs, multi-version consumers)
- Detect API and contract drift (OpenAPI/AsyncAPI vs reality, breaking consumers, schema lag)
- Quantify operational toil (manual runbooks, ticket volume, change failure rate proxies)
- Score security blast radius (critical paths, over-privileged service accounts, secrets sprawl)
- Recommend consolidation, strangler slices, or decomposition with evidence—not opinion alone
- Deliver platform/SRE/architect summaries with prioritized hotspots and next owners
When NOT to Use
- Greenfield boundary research, bounded contexts, or ADR options only →
microservice-researcher - Implement or refactor production service code, handlers, or deployables →
senior-software-engineer,microservices-developer - Kubernetes cluster ops, node tuning, or cloud landing zones without estate analysis →
cloud-engineer,infrastructure-engineer - Pure load-test design and execution without estate-wide dependency context →
performance-engineer - Broker/outbox implementation or stream processing build →
event-driven-architecture - Enterprise portfolio strategy unrelated to operational estate health →
enterprise-strategist
Related skills
| Need | Skill |
|---|---|
| Greenfield decomposition, strangler research, ADR options | microservice-researcher |
| Estate-wide ADRs, C4, cross-system NFR sign-off | senior-system-architecture |
| IDP, golden paths, paved roads for remediation | platform-engineer |
| SLO design, error budgets, incident and on-call programs | site-reliability-engineer |
| Load testing, latency tuning, capacity experiments | performance-engineer |
| Event contracts, brokers, outbox (when building fixes) | event-driven-architecture |
| IaC, cluster delivery, cloud foundations | infrastructure-engineer, cloud-engineer |
| Service implementation and twelve-factor deployables | senior-software-engineer, microservices-developer |
| Rollout, cutover, and rollback tactics for remediation | deployment-strategist |
Core Workflows
1. Scope the estate and stakeholders
Define analysis boundary (product line, region, cluster namespace, business capability), data sources, and audience (exec brief vs engineering backlog). List non-goals and hand off greenfield design to microservice-researcher when appropriate.
See `references/microservices_analyst_scope.md`.
2. Build service inventory and dependency map
Catalog services, APIs, events, data stores, owners, and environments. Produce dependency graph with sync/async edges, critical paths, and orphan or zombie services.
See `references/service_inventory_and_dependency_analysis.md`.
3. Assess coupling and data ownership
Flag chatty sync chains, cyclic dependencies, shared-database antipatterns, and unclear aggregate ownership. Tie findings to change risk and test burden.
See `references/coupling_and_data_ownership.md`.
4. Review observability, SLOs, and operational health
Map golden signals and SLO coverage per tier-1 service; note alert noise, missing traces, and deployment frequency vs incident correlation.
See `references/observability_slo_and_operational_health.md`.
5. Audit API contracts and version drift
Compare published contracts to runtime behavior; list breaking consumers, deprecated fields still in use, and skew across regions/clusters.
See `references/api_contracts_and_version_drift.md`.
6. Prioritize risks and recommendations
Synthesize consolidation candidates, strangler slices, decomposition triggers, and security blast-radius hotspots with evidence links. Close with executive summary and owned next steps.
See `references/consolidation_risk_and_recommendations.md`.
Principles
- Analyze what exists—inventory and metrics before recommending new boundaries
- Evidence over opinion—every hotspot cites a dependency edge, metric, contract diff, or incident pattern
- Separate research from remediation—hand greenfield ADRs to
microservice-researcher; implementation to engineering peers - Tier services—not every pod deserves the same SLO depth; focus tier-1 paths first
- Make blast radius visible—critical paths and shared fate drive prioritization
When to load references
| Topic | Reference |
|---|---|
| Scope, inputs, deliverables | references/microservices_analyst_scope.md |
| Inventory and dependency mapping | references/service_inventory_and_dependency_analysis.md |
| Coupling and data ownership | references/coupling_and_data_ownership.md |
| Observability, SLOs, ops health | references/observability_slo_and_operational_health.md |
| Contracts and version drift | references/api_contracts_and_version_drift.md |
| Consolidation, risk, recommendations | references/consolidation_risk_and_recommendations.md |
API Contracts and Version Drift
Contract artifacts to collect
| Type | Location examples |
|---|---|
| OpenAPI / Swagger | Repo, portal, gateway export |
| gRPC / Protobuf | Buf schema registry, .proto repos |
| GraphQL | Schema registry, stitched gateway |
| AsyncAPI / event schemas | Kafka schema registry, Pact broker |
| Consumer-driven contracts | Pact, custom compatibility suites |
Drift categories
| Drift type | Description | Severity |
|---|---|---|
| Undocumented | Production behavior not in any contract | High for external APIs |
| Stale contract | Published spec older than implementation | Medium |
| Breaking undeclared | Field removed/renamed without version bump | High |
| Multi-version prod | v1 and v2 consumers on same cluster skew | High |
| Regional skew | EU vs US schema difference | High if unintended |
Compatibility analysis workflow
1. Export runtime schema (gateway, mesh, reflection) where allowed. 2. Diff against published contract (git tag or registry version). 3. List consumers per API version (mesh, logs, client SDK repos). 4. Classify changes: safe additive, deprecated, breaking. 5. Note missing deprecation headers, sunset dates, or consumer outreach.
Breaking-change consumer map
| Producer API | Version | Known consumers | Breaking change | Mitigation status |
|---|---|---|---|---|
/orders | v2 | billing-job, mobile-bff | removed discountCode | 1/3 migrated |
Unknown consumers → flag as discovery gap (tracing, gateway logs, static search).
Version skew across estate
Check:
- Mobile/web clients pinned to old API versions
- BFFs calling deprecated internal routes
- Event schema versions mixed in one topic
- Feature flags masking half-migrated contracts
Contract testing maturity
| Level | Characteristics |
|---|---|
| 0 | No contracts; integration tests only in prod-like env |
| 1 | OpenAPI exists; not enforced in CI |
| 2 | CI breaks on breaking diff; partial consumer coverage |
| 3 | Pact or equivalent per critical consumer/producer pair |
Recommend target level per tier-0 API—not blanket level 3 everywhere.
API gateway and mesh signals
- Routes pointing to retired services
- Timeout/retry defaults masking failures
- Rate limits absent on tier-0 paths
- mTLS identity mismatch between documented and actual callers
Deliverables
- Drift report per service (summary + diffs)
- Consumer compatibility matrix
- Deprecation backlog with owners and dates
- Standardization gaps for platform (lint rules, registry) →
platform-engineer
Handoffs
- Greenfield versioning strategy (not estate audit) →
microservice-researcher - Implementing registry, breaking-change CI →
senior-software-engineer,microservices-developer
Consolidation, Risk, and Recommendations
Risk hotspot taxonomy
| Category | Example finding | Typical owner |
|---|---|---|
| Availability | Tier-0 without SLO or traces | SRE + service team |
| Coupling | 6-hop sync chain on checkout | Architecture + service teams |
| Data integrity | Two writers on orders table | Data + owning service |
| Security | Shared admin SA across 12 deploys | Security + platform |
| Operability | Monthly manual failover drill | SRE |
| Cost | 40 low-traffic services, shared cluster | Platform + FinOps |
| Compliance | PII in logs without retention policy | Security + compliance-engineer |
Blast-radius analysis
For tier-0/1 paths:
1. Trace failure propagation (sync retries, circuit breakers absent?). 2. List shared infrastructure (DB, cache, broker cluster, identity provider). 3. Identify secrets reused across services. 4. Score maximum concurrent impact (users affected, $ at risk if known).
Output: top 5 shared-fate nodes with mitigation options (isolate, replicate, degrade gracefully).
Consolidation candidates
Recommend merge or retire when evidence shows:
| Evidence | Recommendation type |
|---|---|
| Always co-deployed, shared DB, single team | Merge into one service |
| Zero traffic 90d, no compliance hold | Retire with deprecation plan |
| Duplicate capability (two notification services) | Consolidate behind facade |
| BFF + microservice with 1:1 mapping and no autonomy | Collapse or justify split |
Each item needs: effort (S/M/L), risk, dependencies, rollback.
Strangler and decomposition triggers
| Trigger | Suggested next step |
|---|---|
| Monolith module with highest change frequency | Strangler slice research → microservice-researcher |
| Team ownership dispute on shared module | Context map workshop |
| Scaling bottleneck isolated to one aggregate | Extract service with clear data ownership |
Analyst defines where to cut; researcher defines how and options.
Recommendation record template
## REC-001: [Short title]
- **Type:** consolidate | retire | decouple | observability | security
- **Services affected:** ...
- **Evidence:** [metric, graph edge, incident ID, contract diff]
- **Impact if unaddressed:** ...
- **Proposed action:** ...
- **Effort:** S/M/L | **Risk of change:** low/med/high
- **Owner:** team | **Dependencies:** REC-00x
- **Success metric:** ...Prioritization matrix
| Low effort | High effort | |
|---|---|---|
| High impact | Do now | Plan quarter |
| Low impact | Backlog | Defer / reject |
Impact = customer/revenue/availability/security; adjust weights with stakeholders.
Executive summary (1 page)
1. Estate snapshot — service count, tier-0 count, map thumbnail 2. Top 5 risks — one line each with evidence pointer 3. SLO/observability gap — % tier-0 with full coverage 4. Contract drift — count of breaking/unknown consumers 5. 90-day focus — 3–5 REC items with owners 6. Explicit non-goals — what this analysis did not cover
Program sequencing
Typical order:
1. Inventory + dependency map (facts) 2. Tier-0 SLO and critical-path traces (visibility) 3. Contract drift on external and payment paths (stability) 4. Shared DB and sync-chain remediation (architecture debt) 5. Consolidation/retire quick wins (cost/toil)
Peer handoffs
| Finding | Skill |
|---|---|
| Boundary options for split/merge | microservice-researcher |
| Implement extraction or merge | senior-software-engineer |
| SLO/error budget program | site-reliability-engineer |
| Load test before/after cutover | performance-engineer |
| Cutover planning | deployment-strategist |
| Estate-wide ADR approval | senior-system-architecture |
Coupling and Data Ownership
Coupling types (assess existing estate)
| Type | Symptoms | Typical risk |
|---|---|---|
| Integration | Chatty sync RPC, no timeouts, retry storms | Latency cascades, incident blast radius |
| Data | Multiple services write same tables/schema | Integrity bugs, undeployable changes |
| Temporal | Hidden ordering assumptions across events | Race bugs, duplicate processing |
| Deployment | Must release A+B+C together | Slow delivery, rollback complexity |
| Operational | Shared runbooks, shared secrets, shared queues | Shared fate on outages |
Shared-database smell checklist
Flag when two or more services:
- Write to the same relational schema or collection
- Share ORM models across repos
- Use DB views as integration API
- Bypass service APIs with direct SQL from another team's job
Document: which team owns the schema, migration process, and who approves cross-service queries.
Data ownership matrix
| Aggregate / entity | System of record | Allowed readers | Integration style |
|---|---|---|---|
| Order | order-service | billing (read API), analytics (CDC) | API + outbox |
| Customer profile | identity-service | CRM (event) | async only |
Gaps (no single writer) are P1 architecture debt until resolved or explicitly accepted.
Cyclic dependency detection
Cycles in sync call graphs (A→B→C→A) block independent deployment. Mitigations to recommend (not implement here):
- Introduce async boundary or read model
- Collapse cycle into one deployable temporarily
- Extract shared kernel with strict versioning
Library and platform coupling
| Pattern | Assessment |
|---|---|
| Shared internal SDK with business logic | Hidden coupling; version skew risk |
| Copy-paste DTOs across services | Contract drift |
| Central "utils" repo imported everywhere | Release bottleneck |
Recommend contract-first artifacts (OpenAPI, events) over shared business libraries when drift is observed.
Change-risk scoring (lightweight)
| Factor | Weight |
|---|---|
| Tier-0/1 on critical path | High |
| Fan-in > 5 services | High |
| Shared DB writer count > 1 | High |
| No contract tests | Medium |
| Deploy frequency < monthly | Medium |
Use scores to order remediation backlog—not as precise math.
Consolidation vs decomposition signals
Consolidate candidate when:
- Services always deploy together, share DB, low independent value
- Operational cost (on-call, pipelines) exceeds benefit of separation
Decompose candidate when:
- Single service owns unrelated aggregates with conflicting change rates
- Team cognitive load or incident frequency concentrated in one repo
Hand detailed boundary design to microservice-researcher after identifying the candidate.
Evidence to attach
- Call graph screenshot or export
- Schema ownership doc or migration history
- Incident tickets citing cross-team DB changes
- Deploy correlation (services released in lockstep)
Microservices Analyst — Scope
Role
Analyze existing microservice landscapes: what runs today, how services depend on each other, where operations hurt, and which changes reduce risk or cost. Output is assessment and prioritization, not greenfield architecture research.
Distinction from Microservice Researcher
| Dimension | Microservices Analyst | Microservice Researcher |
|---|---|---|
| Primary question | "What is wrong or risky in our estate?" | "How should we split or integrate going forward?" |
| Inputs | Catalogs, metrics, traces, contracts, deploy history | Domain events, bounded contexts, NFR targets |
| Outputs | Dependency maps, health gaps, drift reports, hotspot backlog | ADRs, options matrices, boundary recommendations |
| Typical trigger | Operational pain, audit, consolidation, incident postmortem | New product, monolith escape, org restructure |
Cross-link both skills when a program needs research then assessment, or assessment then targeted research on one boundary.
In scope
- Service and API inventory (name, owner, tier, repo, runtime, environments)
- Dependency and coupling analysis (sync chains, events, shared stores)
- Observability and SLO coverage gaps, alert quality, on-call load proxies
- Deployment and version skew across regions/clusters
- Contract drift (REST, gRPC, GraphQL, AsyncAPI) and consumer compatibility
- Operational toil indicators (manual steps, ticket themes, change failure signals)
- Security blast radius on critical paths (not full pentest—factual surface map)
- Consolidation / strangler / decomposition candidates with evidence
Out of scope
- Greenfield bounded-context design only →
microservice-researcher - Writing or shipping new microservices →
senior-software-engineer,microservices-developer - Cluster/node performance tuning without estate framing →
cloud-engineer - Dedicated load-test campaigns →
performance-engineer - Full penetration test or compliance attestation →
penetration-tester,compliance-engineer
Stakeholders and deliverables
| Audience | Typical deliverable |
|---|---|
| Platform / architecture | Estate map, coupling heatmap, tiering proposal |
| SRE / operations | SLO gap table, toil themes, incident-correlated hotspots |
| Engineering leadership | Prioritized remediation backlog with owners |
| Security | Blast-radius paths, shared-secret and over-privilege flags |
| Executives | 1-page summary: top 5 risks, cost/complexity drivers, 90-day focus |
Required inputs (gather early)
- Service catalog or CMDB export (even partial)
- API gateways, service mesh, or ingress route lists
- APM/traces, metrics, logs retention pointers
- CI/CD deploy history per service (frequency, failure rate if available)
- OpenAPI/AsyncAPI/Protobuf repos or registry
- Recent incident themes and postmortems (redacted)
- Org chart or team-to-service mapping
Analysis phases
1. Bound the estate (product, env, region, namespace). 2. Inventory services, APIs, data stores, and owners. 3. Map dependencies and classify coupling. 4. Measure health (SLOs, deploys, drift, toil). 5. Recommend with evidence, effort, and owner handoffs.
Quality bar
- Every finding links to evidence (edge in graph, metric, contract diff, ticket count).
- Distinguish fact vs hypothesis; label confidence.
- Prefer actionable next steps with a single accountable team per item.
Observability, SLO, and Operational Health
Golden signals per service
For each tier-0/1 service, verify coverage of:
| Signal | Minimum expectation |
|---|---|
| Latency | p50/p95/p99 by dependency edge |
| Traffic | RPS or queue depth |
| Errors | HTTP/gRPC codes, business error rate |
| Saturation | CPU, memory, pool exhaustion, lag |
Mark gaps explicitly (e.g., "no traces on checkout→payment edge").
SLO coverage assessment
| Question | Pass criteria |
|---|---|
| SLO defined? | Documented SLI + target + window |
| Error budget policy? | Burn alerts and response playbook |
| Tier alignment? | Tier-0 has stricter targets than tier-3 |
| Dependency SLOs? | Upstream contracts referenced or ignored knowingly |
| Customer-facing mapping? | SLO ties to user journey, not pod name only |
Produce a coverage matrix: service × {SLI defined, dashboard, alert, runbook, owner}.
Alert quality heuristics
| Smell | Action |
|---|---|
| >30% pages non-actionable | Tune or delete; route to site-reliability-engineer |
| Same alert fires daily | Threshold or architecture fix |
| No alert on tier-0 without SLO | Define SLI or downgrade tier (with approval) |
| Alerts without service label | Fix observability taxonomy |
Deployment and change health
Proxy metrics when formal DORA data exists:
| Metric | Source ideas |
|---|---|
| Deploy frequency | CI/CD per service |
| Lead time | Commit → prod duration |
| Change failure rate | Failed deploys / rollbacks |
| MTTR | Incident duration by service |
Highlight version skew: multiple prod versions, stale sidecars, config drift between regions.
Operational toil indicators
Qualitative and quantitative themes:
- Manual steps in runbooks (scale, failover, data fix)
- Recurring ticket categories (quota, cert, cache flush)
- "Hero" on-call knowledge not in docs
- Frequent hotfix deploys outside pipeline
Summarize as toil themes with estimated engineer-hours/month if data exists.
Incident correlation
Map last 90 days (or available window):
- Incidents touching multiple services (shared fate)
- Repeat root causes (timeouts, DB locks, contract mismatch)
- Services with no incidents but no SLOs (unknown risk)
Operational health scorecard (example)
| Service | Tier | SLO | Traces | Deploy/wk | Incidents | Grade |
|---|---|---|---|---|---|---|
| checkout-api | 0 | Y | partial | 12 | 2 | C |
| legacy-pricing | 1 | N | N | 0.5 | 4 | F |
Grades drive narrative; define rubric in appendix for transparency.
Handoffs
- SLO program design, error budgets →
site-reliability-engineer - Load/latency deep dives →
performance-engineer - Platform observability standards →
platform-engineer
Service Inventory and Dependency Analysis
Inventory template
Capture one row per deployable (service, worker, batch job with HTTP/gRPC surface):
| Field | Notes |
|---|---|
| Service ID | Stable key in catalog |
| Display name | Human label |
| Owner team | On-call rotation or group |
| Tier | 0–3 (customer-critical → internal) |
| Repositories | Mono vs multi-repo |
| Runtime | K8s workload, VM, serverless, mesh sidecar |
| Environments | prod regions, staging parity |
| Public APIs | REST/gRPC/GraphQL routes |
| Events published / subscribed | Topic/stream names |
| Data stores | DB, cache, queue owned or shared |
| Last deploy | Date, version, drift flag |
| SLO defined? | Y/N + link |
Discovery sources
| Source | Yields |
|---|---|
| Service catalog / Backstage | Owners, tiers, links |
| API gateway / ingress | External routes, rate limits |
| Service mesh (Istio/Linkerd) | mTLS graph, retries, timeouts |
| APM (Datadog, Honeycomb, etc.) | Call edges, latency, error rate |
| Log/trace correlation | De facto dependencies |
| Terraform/K8s manifests | Deployed names, env vars pointing to peers |
| Message broker ACLs | Topic producers/consumers |
| Shared DB connection strings | Shared-fate risks |
Dependency map rules
1. Node = deployable + major data store (if owned). 2. Edge = observed traffic (sync) or subscription (async); label protocol and direction. 3. Weight edges by RPS, error contribution, or business criticality when data exists. 4. Mark synthetic edges (config-only, no recent traffic) separately from active edges.
Dependency graph outputs
- System context (1 diagram): actors and top external integrations.
- Container/service map: all in-scope services with tier coloring.
- Critical path overlay: user-journey services highlighted.
- Fan-in / fan-out table: services with >N inbound or outbound deps (coupling smell).
Sync chain analysis
Document chains longer than 3 hops on tier-0/1 paths:
Client → BFF → Order → Inventory → Pricing → LegacyFor each chain record: p99 latency budget, timeout cascade risk, partial failure behavior, and idempotency gaps.
Zombie and orphan detection
| Signal | Interpretation |
|---|---|
| Zero traffic 30+ days | Candidate retire or mis-cataloged |
| Deploy stopped, pods running | Version skew / forgotten service |
| No owner in catalog | Governance gap |
| Duplicate names across envs | Inventory normalization needed |
Inventory quality checks
- [ ] Every tier-0/1 service has an owner and on-call
- [ ] Every external API has a contract pointer or "missing contract" flag
- [ ] Shared data stores list all writers (not just primary)
- [ ] Environments documented; prod-only deps called out
Handoffs
- Unclear domain boundaries for a hotspot →
microservice-researcher - Missing platform golden paths for standardization →
platform-engineer - Mesh/gateway misconfiguration remediation →
infrastructure-engineer,cloud-engineer