Skip to content

fmartinez09/cascade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cascade

An offline, zero-dependency Go CLI to analyze microservice blast radius, SPOFs, and architectural drift directly from OpenTelemetry traces.

Unlike heavy APM platforms, Cascade is a lightweight, single-binary tool designed for offline architecture audit and SRE analysis. It ingests OTLP data, materializes a strict weighted dependency graph, and runs graph-theory algorithms to detect structural vulnerabilities.

Key Features

  • Zero Infrastructure: No databases, no collectors running in production. 100% offline analysis.
  • Blast Radius Estimation (M4): Computes Tarjan's SCC (Strongly Connected Components) to identify upstream service impact if a specific dependency fails.
  • SPOF Detection (M6): Evaluates Weakly Connected Components (WCC) to pinpoint single points of failure.
  • Drift Analysis (M7): Compares two graph states (e.g., baseline vs. current) to detect architectural drift (added/removed/changed edges or latency anomalies).
  • Multi-format Output: Renders operational insights into clean Text tables, stable JSON schemas, or interactive HTML network graphs.

Quick Start

Installation

go build ./cmd/cascade

Basic Usage

  1. Generate an interactive HTML dependency graph:Bashcascade graph -i production_traces.json --out-format html -o graph.html

  2. Analyze the Blast Radius of your services (Top 5 worst offenders):Bashcascade blast-radius -i production_traces.json --top 5

  3. Detect architectural drift between two trace dumps:Bashcascade drift --input-baseline baseline.json -i current.json --out-format text

CLI Reference

Command Description Output Formats
graph Builds the service runtime dependency graph Text, JSON, HTML
blast-radius Computes affected upstream services per failure Text, JSON
spof Identifies single points of failure (WCC split) Text, JSON
drift Compares topology and latency deltas between two inputs Text, JSON

Global Flags

-i, --input <file>: OTLP input file (defaults to stdin).

--format <json│protobuf>: Explicit format routing (required for stdin).

-o, --output <file>: Output destination (defaults to stdout).

--out-format <text│json│html>: Selects the renderer.

Project Status & Roadmap

[x] M4: OTLP Parsing, Graph Construction, and Blast Radius (Tarjan SCC).

[ ] M6: SPOF Detection (CLI wired, engine WIP).

[ ] M7: Architecture Drift Analyzer (CLI wired, engine WIP).

Note: Live trace receivers, probabilistic temporal simulations, and historical persistence are explicitly out of scope for v1.

About

Analyze microservice blast radius, SPOFs, and architectural drift directly from OpenTelemetry traces

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors