惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

DEV Community

93 Agents. 2.6 Billion Tokens. One Working OS. And a Bill Under $1,000. Stop Getting 'It Depends' Answers About RAG Architecture Wrapping Hermes Agent with agent-stack: six tiny libs for the boring parts Templating got me to 33,620 pages. Indexing them was the hard part. EML Attachments Not Opening? Here’s How to Fix the Issue Easily in 2026 WordPress client onboarding: the exact process I use to start every maintenance contract right Models shouldn't have execution authority. Why we built a deterministic FSM runtime for AI agents. AI makes building faster, but semantic distribution is now the hard part How I Created My First Solana Token from Scratch (SPL Token Basics Explained) How I use WP-CLI to cut WordPress maintenance time from 6 hours to 20 minutes What Is Vibe Coding? And Does It Actually Work for Production Code? (I Tested 10 Tools) WordPress staging environments: the 15-minute setup that prevents client emergencies Reading Log #2 — Sapiens Imagined Communities: An Organization Is Made of Shared Fiction I Built a Branded Token on Solana in 5 Minutes (No Smart Contract Needed) The Confidence Gap: How AI Introduces Silent Errors on Production Sites Day 7 - Dense Embedding - RAG Why teachers need explainable AI, not just accurate AI — building the KC dashboard Closing the feedback loop: how mistake classification drives adaptive problem selection in NumPath Amazon Quick: AWS's Agentic Workspace, Explained for Engineers "My Coding Agent Remembered Sessions, Not Work. That Was the Bug" Reading Log #0 — Manga Was a Democratization Device for Cultural Capital SecOps Salary Guide 2025: GRC CTC Ranges in Indian GCCs vs Product Companies 🐍 python global vs nonlocal keyword — when to use each? 6 Free Online Video Cutters That Don’t Completely Ruin Your Footage (2026) Engineering Around Bitcoin's Traditional Platform Lockdowns AI 2026 ⚖️ Case File 4.1: The Efficiency Extortion Client-Side AI: The Next Era of Consumer E-Commerce? Why I'm building an AI math tutor for dyscalculia — and grounding it in 30 years of ITS research "My DingTalk Coding Bot Said It Started the Task. Then It Never Sent the Result" Your trycatch sucks - lets fix it I Built a Globally Distributed Blog Platform for ~$1/Month Awesome-Claude-Skills I built 135 Claude Skills with real formulas. Here's what "production-grade" actually means. How I engineered a Non-Euclidean AI framework for massive data reduction Automated 25 Minutes of My Morning With a Prompt (Not a Script) أدوات API ذاتية الاستضافة: هل يجب أن تترك السحابة؟ Never Use Service Classes in Rails How Markus Builds AI Teams That Actually Ship — Not Just Chat Pricing logic feels boring until it's wrong. Software Engineer Skills Companies Want in 2026: 48K-Posting Analysis Data Races Reproduced: Harnesses That Catch Heisenbugs Demystifying AI Agents: Building an Agentic Pipeline From Scratch in Pure Python Coding Agents Are Becoming Remote Workers. Enterprises Need an Agent Harness. How I Let an AI Refactor My Whole Codebase (Using Gemini 3.5) Flutter 3.44 Highlights From Google I/O 2026: What's New and What Matters The Hidden Cleanup Cost Behind AI Coding Velocity Promises A beginner's guide to the Image-Background-Remove model by Zf-Kbot on Replicate A beginner's guide to the Invsr model by Zf-Kbot on Replicate How to Automate Canadian T4 Slip Parsing with an API (No OCR Setup Required) حماية مفاتيح API من إضافة VS Code ضارة Agetor Review: An Open-Source Kanban Board for Orchestrating Claude Code Why most Marketo audits start at the wrong layer RevOps alignment is an operating-model problem, not a tooling problem Why Some Developers Are Moving Away From Tailwind CSS in 2026 API 키 보호: 악성 VS 코드 확장으로부터 안전하게 VS Code拡張機能によるAPIキー漏洩を防ぐ方法 Temporal Cloud Serverless: Durable Execution Without the Ops Overhead Why Freshers Must Build Real AI Products Instead of Endless App Clones I Built a Dynamic llms.txt for Next.js. Then Google Said Don't Bother. AWS Summit Seoul 2026: Korean Enterprises And Agentic AI Does AI Know How Many Tokens It Is Burning Selling Software in Countries PayPal Can't Reach - A Cautionary Tale of Crypto and Custom Solutions My Old MacBook Air Couldn't Handle It — So I Used Google Colab to Train an AI#1 The Discord.js gotchas that cost me a week each (so they don't have to cost you one) Leetcode QOTD:- 3043. Find the Length of the Longest Common Prefix MPT DEX Performance Test Report I shipped a working landing page in 14 KB. Here is every byte. Zero-Secret CI/CD: GitHub Actions + OIDC on AWS (Part 6) Building the React Frontend: Document Library and Chat UI (Part 5) Runtime Governance Evidence Anchors in 2026: A Public Ledger for Budget and Accountability Decisions RAG and Vector Search with pgvector and Amazon Bedrock (Part 4) Serverless Document Pipelines with AWS Step Functions (Part 3) Multi-Tenant Auth with Cognito and PostgreSQL Row-Level Security (Part 2) Building a Multi-Tenant AI Document Platform on AWS (Part 1: Architecture) Building a Nutrition Calculator in JavaScript: filter, map, and reduce on Objects Shipping an MCP server: parallel search, JSON output, and what broke along the way Runtime Governance Evidence Anchors in 2026: A Public Ledger for Budget and Accountability Decisions A 3-step agent cost me $4.20. agenttrace showed me the O(n ) tool call hiding in plain sight. Beyond WebView: The Next Evolution of Hybrid App Architecture Our retry loop made an outage worse. The circuit breaker stopped the cascade. Claude returned ```json blocks 14% of the time. Here is the Rust crate I wish I had earlier. I burned my Anthropic org cap and waited 3 days. Then I built llmfleet. One Open Source Project a Day (No. 71): CodeGraph — Pre-Index Your Codebase for AI Agents, Save 35% Cost and 70% Tool Calls The prompt your SDK sends is not the prompt you wrote The Context Tax: Why Every Cursor Session Costs You 15 Minutes Prompt Physics: Building a Cognitive Steering Layer for Gemma 4 Pain Points Will Always Outlive Platforms 92. BERT: The Model That Reads in Both Directions QAOA vs. 75,000 Nodes: Building a Hybrid Architecture to Solve NP-Hard Problems When Quantum Simulators Hit a Wall E2B? E4B? 26B A4B? The Gemma 4 Model Names Finally Explained One Tool That Cuts Token Costs 40-80% for Claude Code, Codex, opencode, and openclaw Building a 32-URL economy microsite on top of a 754,000-row SQLite dataset Coordinating 100+ AI Agents in the Field: Practical Patterns for Robotic Swarms Static site search for Astro in 2026: why I picked Pagefind over Algolia and Lunr How I built pairwise AI model compare pages with Claude Haiku and a budget cap Three post-deploy checks I run after every Cloudflare Pages build Why I'm betting on AI-curated directories when Google AI Overviews answer the same queries When boto3 doesn't have it (yet), you write it: a realtime speech-to-speech story in Python Zero-Trust RAG: Defeating the Shared Private Link Deadlock in Azure Terraform You Can't Co-Design What You Don't Operate
Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud
Robert J. Be · 2026-04-18 · via DEV Community

This is the first part of a multipart series introducing tc Cloud Functors

The Monolith in the Desert Problem

Sometimes I feel like the Forrest Gump of computing, having worked on or been around everything from the introduction of mini and microcomputers to starting an ISDN ISP in 1993, pioneering international server farms, and building early e-commerce sites through the earliest days of the cloud, working with AWS in 2008. (and so much more!)* Since then I've specialized in serverless infrastructure and systems.

About three years ago, I joined a startup called Informed, whose product is a very sophisticated Intelligent Document Processing pipeline for lenders. Informed had the classic situation of a startup that has found its market with a working product, but the implementation is a mirror of the random walk they took to discover their market/product fit. They were processing about 8% of all US car loans, dealing with heavy bank regulations, and had the terrifying constraint of infinite PII. Yet, the tech stack was a typical startup tangle: a massive Ruby on Rails app sitting at the center of the universe, talking to just about every AWS service imaginable through Elastic Beanstalk, and using a single Postgres database as a message bus. I don't say this with disdain. It was a working system that had lots of quality engineering and had been very successful in delivering services to some of the top banks and generating profits.

Most startups have this random wandering in the desert until they find their product/market fit, and their software tends to follow the same route. Unfortunately, it was also a nightmare of tech debt where adding a single feature felt like moving a mountain.

We knew we had to move to a modular, event-driven architecture, but we weren't just talking about a couple of functions. We were looking at a future that now consists of 107 topologies and 340 Lambdas across Python, Ruby, and Node. Managing that kind of complexity for a small team of developers is the real hurdle. Traditional tools like CloudFormation which, frankly, I find to be a collection of frustrating magic spells. Using CloudFormation felt like trying to build a high-performance engine out of low-level, brittle bones. Even Terraform, while it sucks less, didn't have the right impedance match for the high-velocity muscle of a distributed serverless system.

We knew we wanted to move to a more unified and serverless style of infrastructure. The use case matched serverless perfectly, as its API driven, machine-to-machine work primarily. It's very bursty and follows the normal sine wave pattern of the US business hours. We also found that the existing tooling did not lend itself to building such complex serverless systems.

Before we had tc our developers were spending 80% of their time manually wiring infrastructure and only 20% writing logic; we had already lost. We needed to stop managing resources and start programming the cloud as a single computer. This frustration with manual wiring led us to a breakthrough: moving away from resource lists and toward a graph-first mental model.

Amazingly, company management approved the rewrite, and we actually were successful with first customers on it after 6 months and fully switched to the new system in 9 months. It was during this time that tc was developed based on our real needs and experiences. We continue to add new features as we discover the needs.

The Mental Shift: From Resources to Graphs

The Aha! Moment happens when you realize most tools ask the wrong question. They focus on the implementation (the how) rather than the intent (the what). I scoured the InterTubes for something better, but everything else was still resource-centric.

Resource-First (Terraform/CloudFormation) What resources do you need? A static list of primitives (buckets, roles) that must be manually wired. Function-First (Serverless Framework) What functions do you have? A collection of compute units that still require manual infrastructure glue. Graph-First (tc) What is the graph of your system? A logical topology where relationships are primary and infrastructure is derived algorithmically.
Question Asked Primary Focus Outcome

Think of it like the React analogy. Before React, we manually manipulated the DOM (the infrastructure). With React, we focus on component state and relationships; the DOM manipulation is just a side effect handled by the framework. In the tc model, you describe how components connect, and the system handles the IAM roles, event rules, and subscriptions as derivative artifacts. It’s an inversion of control where the graph is the truth. To make this graph-based thinking concrete, we created a single unit of encapsulation: the Cloud Functor.

What is a Cloud Functor?

We borrowed the term functor from OCaml’s parameterized modules. In our world, a Cloud Functor is a first-class, composable unit of infrastructure. To understand it, just look at your file system as a similar model of hierarchy and other characteristics.

Namespaced: Just like a directory, every functor has a unique identifier to keep things organized and domain-specific.

Sandboxed: You can deploy isolated versions (dev, staging, feature-branch) in the same deployment account without collision.

Versioned: We use Git tags and deployment manifests to freeze implementations, making rollbacks as simple as pointing to a previous tag.

Isomorphic: The definition is abstract; the same YAML renders consistently whether it's on your laptop or in production.

The File System Analogy shows how you work through Sub-Tree Autonomy. You can cd into a deeply nested folder, say, src/loan-app/extraction/ssn-id and run tc deploy in that directory. The tool treats that subfolder as the root of the universe, ignoring the rest of the 340-Lambda monolith. This zooming allows for infinite nesting in a fractal pattern; a top-level orchestrator delegates to sub-orchestrators, and every level looks the same. Every one of these functors is built from the same set of atomic building blocks.

Breaking away from the file system analogy, the top feature of Cloud Functors is their Composability.

The 8 Atoms of the Cloud Universe

We identified eight core entities that are sufficient to build any sophisticated serverless topology.

Functions Lambda / ECS Pure business logic; side-effect free compute. States Step Functions The managers handling flow control and error recovery. Events EventBridge The nerves of the system; decoupled signals. Routes API Gateway Synchronous HTTP entry points. Mutations AppSync (GraphQL) Modern data modification for frontends. Queues SQS Buffering and load leveling between components. Channels AppSync Events Real-time, two-way communication via WebSockets. Pages S3 & CloudFront Static frontend assets (HTML/JS/CSS).
Entity Cloud Mapping (AWS) The So What? (Benefit)

By defining these logical connections, the spaghetti of infrastructure glue is derived algorithmically. This isn't just a convenience; it’s the secret to killing some of the most common security headaches in the cloud.

Composability - The Real Superpower of tc

Let's cut to the chase about the real superpower of tc: graph-based composability. Turns out, when you stop thinking in terms of disjointed infrastructure resources and start treating your cloud primitives: functions, events, queues, and routes as fundamental atoms, you can build some truly elegant, self-documenting systems.

One simply defines the logical connections between these namespaced and sandboxed entities in a clean YAML graph, and the tc composer works its magic spells to infer all the complex IAM permissions and infrastructure glue for you. Because these relationships are elevated to explicit, first-class citizens rather than being scattered as obscure implementation details, the topology definition itself becomes a highly readable architecture diagram where no low-level infrastructure configuration leaks into your business logic.

This means we can seamlessly compose these atomic entities into higher-order Cloud Functors, and then recursively compose those into massive enterprise systems, allowing my team to understand an entire topology of 30+ interconnected microservices at a glance without ever wading through the spaghetti code of traditional IaC.

Algorithmic Security: Killing the Confused Deputy

In the trenches, I see developers just getting it working by stripping away SourceArn or ExternalId conditions because IAM is hard. This creates the confused deputy problem, where a service is tricked into acting on behalf of a malicious party.

The tc composer solves this using Algorithmic Security:

Tested Templates: The composer uses pre-validated, secure policy templates for every connection. It automatically adds SourceArn condition keys to trust policies. You literally cannot forget them because you don't write them.

Least Privilege by Default: Since the graph knows Function A only talks to Queue B, the compiler generates a policy scoped strictly to those ARNs. No wildcards (*) allowed.

Because you define the topology (logic) and not the policy (implementation), the compiler always regenerates the algorithmically secure version. While tc handles the muscle, we still need a skeleton to hold everything up.
You still need someone with an understanding of IAM roles/policies to create the templates, but the enforcement is done by the tooling.

The Bones and Muscles Hybrid Architecture

We don't try to replace Terraform (at least not yet!). Instead, we use a hybrid model that respects different infrastructure velocities:

The Bones (Terraform): This is your skeleton—heavy, static stuff like VPCs, RDS, and the Event Bus. You want your bones to be rigid and reliable. We will run Terraform to set up and maintain these static elements. We do not run Terraform regularly and don't really use it for drift management. Not only that, but we expect to eventually have tc be able to create and manage all AWS elements (and maybe other clouds someday).

The Muscles (tc): These are the high-velocity parts: Lambdas, Step Functions, and the Rules/Subscriptions on that bus. They attach to the bones and provide the actual motion. tc manages this fully

The Tendons (The Resolver): This is the magic. The tc resolver queries the universe (AWS) to find the ARNs of the bones as well as the state of the deployed functors and all the previously deployed services. tc talks directly to AWS via the AWS SDKs. The resolver then uses that data to supply ARNs or other info needed to wire things up.

The Developer Workflow: Zooming into Action

The workflow is designed for speed. Because the tc builder uses Docker buildx for multi-architecture support (Linux/amd64), your builds are consistent regardless of your local machine or build by CI/CD in the Cloud.

tc build    # Package logic and ML models (Docker multi-arch)
tc publish  # Push assets like Layers and EFS models to S3
tc create   # Provision the isolated, namespaced sandbox
tc invoke   # Test logic directly in the cloud via a REPL

The three pillars of this workflow are:

Sandboxing: Collision-free environments (e.g., dev-your-name). Alice’s messages never end up in Bob’s queue.

Contextual Execution: Zoom into a sub-folder and iterate in seconds, ignoring the rest of the system.

Isomorphic Rendering: The same YAML is used for your local dev sandbox and production. No more it worked on my machine.

Wrap Up: The Cloud is the Computer

At the end of the day, the goal is to stop being infrastructure managers and start being cloud programmers. When we moved to this graph-first model at Informed, our implementation speed just zoomed. Being spoiled by Ruby and other high-level languages, I couldn't go back to manual wiring. We are now integrating LLMs/Agents with tc both for dev and targets, so things should go even faster.

Turns out, once you stop fighting with low-level primitives and start thinking in graphs, building complex systems becomes far too easy. It’s truly a superpower. Stop thinking in resource lists. Start thinking in graphs. The cloud is your computer; it's time to start programming it properly.

tc Cloud Functors is an open source project that can be found at https://github.com/tc-functors with documentation at https://tc-functors.org/.