Anode 1.0 — 4-Pillar Proof of Topology•Zero SDK Lock-In

Deploy unmodified Go backends without Dockerfiles or Kubernetes.

Anode extracts an immutable, human-readable anode.lock.json directly from your Go AST using compiler-backed SSA and Variable Type Analysis. Deploys to bare-metal systemd, cgroups v2, and automated TLS.

brew install anode or curl -fsSL ...
See How It Works
Sub-second Cold Boots
Deterministic Lockfiles
Zero Port Collisions
anode-orchestration-shell
~anode inspect ./testdata/sample-shopSSA Static Pass • 18ms

[1/4]Initializing SSA & Variable Type Analysis Core...

• Rooted at main.go (func main)

• Package graph resolved: 48 pkgs, 312 functions

[2/4]Call graph choke-point inspection

✓ Detected sql.Open("postgres", cfg.DatabaseURL)

• Verified migration assets: ./migrations/*.sql (4 files)

• Provenance guarantee: Schema-backed PostgreSQL engine

[3/4]Interface & route table extraction

• Discovered HTTP endpoints:

↳ POST /v1/orders (orders.Handler.CreateOrder)

↳ GET /v1/orders/:id (orders.Handler.GetOrder)

[4/4]Synthesizing immutable contract

✓ Generated anode.lock.json (SHA256: 8e4b7a1...)

✓ Determinism proof verified: 4/4 Pillars satisfied

Proof of Topology: Validated
Bare Metal systemd + cgroups v2
Proof of Topology

How Anode Eliminates Infrastructure Drift

Click through the pipeline to see how raw Go code compiles into an immutable topology contract and deploys to bare-metal primitives.

Input

Unmodified Go Source

Pure Go stdlib. No custom SDKs.

Engine

SSA / VTA Engine

Static Single Assignment analysis

Contract

anode.lock.json

Commit-backed immutable contract

Runtime

Bare-Metal Execution

Dynamic Dev & Production VPS

Stage DetailsSSA / VTA Engine

SSA / VTA Engine

Anode parses the abstract syntax tree and builds a Variable Type Analysis (VTA) call graph rooted at func main(). It statically pinpoints network choke points and dependencies.

Mathematical proof of topology in ~18ms
Static tracing through configuration structs and wrappers
Dead-code pruning eliminates false positives
Pipeline Provenance OutputDeterministic
// Anode Static Analysis Output:
• Root: github.com/user/shop/cmd/api.main
• Detected Outbound: database/sql.Open(driver="postgres")
• Migration Asset Provenance: ./migrations/*.sql (goose)
• Inbound Interfaces: HTTP on :PORT (POST /v1/orders)
Architecture Without Drift

Stop Writing Your Architecture Twice

Every time you build a Go backend with Docker, your Go code and your configuration drift apart. Anode computes the infrastructure contract directly from source.

The Docker / Compose Trap

Fragile Dual-Declaration

You declare dependencies in Go (`sql.Open`), then duplicate them in a multi-stage Dockerfile and a 60-line docker-compose.yml.

docker-compose.yml (Manually Maintained)Prone to Drift

services:

api:

build: .

ports: ["8080:8080"] # Collision if already used

db:

image: postgres:16

ports: ["5432:5432"] # Crashes if local PG runs!

Port collisions on 5432/6379 break multi-project dev
Env variable renames in Go silently break compose definitions
Heavy container daemon memory footprint (200MB+ idle)
The Anode Way

Compiler-Backed Single Truth

Your Go code is the sole specification. Anode extracts the exact topology, assigns collision-free dynamic ephemeral ports, and commits the contract to Git.

anode inspect (Auto-derived from Go AST)Zero YAML

// 100% Deterministic SSA Call Graph Pass

Detected: sql.Open("postgres") + ./migrations/*.sql

Local Dev: 127.0.0.1:54329 (Dynamic loopback)

Production: systemd + cgroups v2 (Native Linux)

Zero port collisions: run 10 services on one machine simultaneously
No proprietary SDKs: standard `database/sql` and `net/http`
Cross-compiles single static binary with systemd supervision
Mathematical Determinism

The 4 Pillars of Topology

Anode replaces guesswork and DSL lock-in with four foundational compiler guarantees.

Pillar 01Zero-Guess Engine

Migration-Driven DB Provenance

Anode provisions a database only when verifiable schema migrations exist alongside the service (Goose, sql-migrate). If no migrations exist, Anode treats it as an external unmanaged service—zero guessing.

provenance_check:
✓ Found ./migrations/20261101_init.sql
✓ Schema parser validated (Goose driver: postgres)
↳ Provisioning isolated Postgres container
Pillar 02Protobuf & HTTP

Typed Interface Linking

Microservice RPC connections match 1:1 via generated Protobuf descriptors and HTTP route tables. No regex guesswork, no brittle name heuristics.

service_link: payment.v1.PaymentService
↳ Matched to upstream service :50051
Pillar 03Git Reviewable

Commit-Backed anode.lock.json

Every inspect run emits an immutable contract committed directly into version control. Platform engineers review architecture changes in GitHub Pull Requests.

+ anode.lock.json
+ "listen_port_env": "PORT"
+ "dependencies": ["postgres:16"]
Pillar 04Compile-Time Proof

Actionable Build-Time Diagnostics

If a dynamic DSN or outbound target cannot be mathematically resolved by SSA, Anode emits an actionable compiler diagnostic with file:line provenance and exact fix instructions.

diagnostic [ANODE_WARN_02] at cmd/worker/main.go:42:11
Dynamic DSN string concatenation detected. Declare standard env var `DATABASE_URL` for 100% deterministic binding.
Performance Metrics

Bare-Metal Primitives Win Every Time

By compiling directly to Linux systemd, cgroups v2, and ephemeral loopback proxies, Anode delivers near-zero runtime latency and memory footprints.

Cold-Boot Startup
8ms
vs 1,420ms• 177x faster

Direct Linux systemd execution vs Docker containerd engine initialization.

Process Memory Overhead
4.8 MB
vs 186 MB• 97% reduction

Zero virtualization runtime daemon overhead per service on your VPS.

Topology Static Sweep
18ms
vs Manual YAML• Sub-second

SSA and Variable Type Analysis resolves entire multi-service monorepos instantly.

Local Port Collisions
0%
vs Frequent• Dynamic Loopback

Dynamic ephemeral loopback proxying keeps host ports 5432, 6379, and 8080 free.

Get Running In 60 Seconds

Ready to Drop Dockerfiles?

Works out of the box on standard Go backends. Zero configuration changes required.

Step 01

Install Anode CLI

Download single static binary or install with Go.

curl -fsSL https://raw.githubusercontent.com/abhiudayg/anode/main/install.sh | bash
Step 02

Inspect Any Go Project

Extract proof of topology directly from your Go codebase.

anode inspect ./cmd/api
Step 03

Run Collision-Free Dev

Spin up isolated DBs on dynamic ephemeral ports with sub-second reload.

anode dev