📐 Design Principles
- All modules are
CGO_ENABLED=0safe — no C dependencies - go-foundation is the only shared base; zero external dependencies, every other module depends on it
- pkg/events (in-process, ephemeral) + pkg/relay (persistent, retryable) form a two-tier async pipeline — events for immediate side effects, relay for durable background work
- go-warp syncbus supports multi-node cache consistency without changing application code — swap backend (InMemory, Mesh, Redis, NATS, Kafka)
- pkg/srv + pkg/dispatcher replace the deprecated
go-module-router/v2in v1.1.0 — HTTP and named-action dispatch under one roof - pkg/saga is panic-safe: a panicking step triggers full LIFO rollback, never leaves partial state
- pkg/app is the single entrypoint — orchestrates DI, HTTP, dispatch, and scheduling. pkg/hosting manages service lifecycle with health endpoints and graceful shutdown
🔗 Ecosystem Integration Pattern
User intent
│
▼
pkg/app — single entrypoint: DI, HTTP, dispatch, scheduling
│
├── pkg/srv — HTTP routing, binding, auth, validation, rate limit
├── pkg/dispatcher — named action dispatch (GUI/TUI/CLI)
├── pkg/saga — wraps multi-step logic in compensatable workflows
├── pkg/events — emits completed action for in-process side effects
└── pkg/relay — enqueues durable background jobs
│
└── MemoryBroker (dev / single-node) — zero infrastructure
go-wormhole — data access layer (EF-style ORM, Unit of Work, code-first migrations)
└── providers: SQL (PostgreSQL, SQLite, MySQL, MSSQL) / MongoDB / go-slipstream / MemDoc
go-warp/v1 — caching + distributed cache invalidation
└── sits between app logic and primary storage
go-slipstream — embedded Bitcask+Raft database
└── used by go-wormhole (Slipstream provider) and go-warp (as L2 store)📦 Module Quick Reference
Post-v1.1.0 consolidation: most former standalone modules (go-auth, go-relay, go-signal, go-revert, go-state-flow, …) are now pkg/ subpackages of go-foundation. Use search_modules to find the right one. The legacy standalone repos are still on GitHub but in maintenance mode.
| Module | Import path | Purpose |
|---|---|---|
| go-foundation | github.com/mirkobrombin/go-foundation | Shared base — 40+ pkg/ subpackages: app, hosting, srv, bind, dispatcher, di, configuration, events, auth, guard, relay, saga, fsm, caching, scheduler, logger, metrics, httpx, resiliency, secrets, plugin, worker, validation, openapi, telemetry, health, … |
| go-slipstream | github.com/mirkobrombin/go-slipstream | Embedded Bitcask-style WAL database with ACID transactions, secondary indexing, optional Raft |
| go-warp/v1 | github.com/mirkobrombin/go-warp/v1 | L1/L2 cache with configurable consistency, distributed invalidation, locking, leases, watch bus |
| go-wormhole | github.com/fabricatorsltd/go-wormhole | EF-style ORM: pointer-tracking DSL, Unit of Work, code-first migrations, lifecycle hooks. SQL + MongoDB + Slipstream + MemDoc providers |
🔧 Available Tools
🔌 Connect from an MCP Client
Add this to your MCP client configuration and you're ready to go.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"go-tools": {
"url": "https://go-tools.fabricators.ltd/mcp"
}
}
}Edit ~/.cursor/mcp.json (or via Settings → MCP):
{
"mcpServers": {
"go-tools": {
"url": "https://go-tools.fabricators.ltd/mcp"
}
}
}Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"go-tools": {
"url": "https://go-tools.fabricators.ltd/mcp"
}
}
}Edit ~/.copilot/mcp.json (or via the Copilot CLI settings):
{
"mcpServers": {
"go-tools": {
"url": "https://go-tools.fabricators.ltd/mcp"
}
}
}Edit .vscode/mcp.json in your workspace:
{
"servers": {
"go-tools": {
"type": "http",
"url": "https://go-tools.fabricators.ltd/mcp"
}
}
}🏗️ Architecture
-
Transport
Streamable HTTP — MCP 2025 standard, single
POST /mcpendpoint. - Auth None — public documentation, no OAuth required.
- Storage Index content is bundled into the Worker at deploy time. No external storage.
- Runtime Cloudflare Workers + Durable Objects for per-connection MCP session state.