Blog
Notes from building with Rust, AI, and whatever else the project demands. No filler — just what was actually hard and what worked.
Failover in Microservices: Keeping Your System Resilient
Learn how microservices automatically detect failures and reroute traffic to healthy instances. A practical guide to failover mechanisms, circuit breakers, and building fault-tolerant systems.
Unifying two registries into one: the provider catalog refactor
When microservices and AI providers lived in two different registries, every code path that touched both paid a coordination tax. Here's how we collapsed them into one.
Pull-First, Push-When-You-Have-To: A Health Protocol for In-House Microservices
How we built a microservice health protocol with no orchestrator, no service mesh, and one config file — and the day a `docker stop` forced us to add a push channel.
Centralizing AI Keys: One Gateway, Many Microservices
Why each microservice shouldn't hold its own LLM keys, and how we built an OpenAI-compatible passthrough that handles routing, audit, and a keyless local-models adapter — all in our monolith.
The Modular Monolith That Learned to Outsource
Why we ship c10r.io as a single Next.js process — and the three reasons we make exceptions. A field report from a CRM platform that earned exactly three microservices.
MCP's Streamable HTTP Handshake: The Notification You Can't Skip
Building an HTTP MCP client from scratch and hitting `Unauthorized: Session not found` on every tool call — even with a valid session ID. The fix is one line of spec most SDKs hide from you.
Wiring OAuth 2.1 into a Rust MCP server for claude.ai
How we added just enough OAuth 2.1 to FastClient's integrated MCP server to make it work with claude.ai's custom-connector flow — without turning a small Axum app into Keycloak.
The Daemon Died, the Bot Kept Polling: Layered Process Supervision in Rust
Thirteen Telegram bot processes were fighting for the same API token like gulls on a chip. The daemon was long dead. The bots had not gotten the memo.
Making Your MCP Server Findable: Link Headers, HTML Tags, and RFC 9728
An MCP server nobody can find is an MCP server nobody uses. We added three discovery mechanisms so any AI agent can go from a bare URL to a live tool connection in under a second.
Your Business, Discoverable by AI: How MCP Lives Inside This Site
We run two live MCP servers on mcsoftsolution.com — one for any AI to discover what we do, one for us to publish content like this post without ever touching a CMS. Here's how and why.
How MCP Servers Actually Handle Authentication
Everyone talks about what MCP tools can do. Nobody talks about how the server knows who's asking — and that turns out to be a genuinely hard problem.
Skip the CI: Deploying a Rust/Axum Binary to a VPS in One Script
Deploy Rust/Axum to Debian 12 in under 2 minutes — no Docker, no GitHub Actions. Just cargo-zigbuild, SCP, and systemd.