Crawl Summary
We found 72 pages to process.
Click to expand the URL list
Confirm Full Conversion
Confirm this crawl to unlock processing for the full site.
-
72 discovered pages
-
72 billable pages
-
Current balance: $0.00 — insufficient, please top up
-
Cached conversion is ready for instant access after confirmation
Confirm Crawl: $2.88
$0.04 per page
Have questions or feedback?
Preview (Seed Page)
Loading...
Index your code with Devin
[DeepWiki](/)
[DeepWiki](/)
[tc-functors/tc](https://github.com/tc-functors/tc "Open repository")
Index your code with
Devin
Edit WikiShare
Loading...
Last indexed: 20 May 2026 ([52c5f3](https://github.com/tc-functors/tc/commits/52c5f399))
* [Overview](/tc-functors/tc/1-overview)
* [System Architecture](/tc-functors/tc/1.1-system-architecture)
* [Workspace Structure](/tc-functors/tc/1.2-workspace-structure)
* [Entity Abstraction Model](/tc-functors/tc/1.3-entity-abstraction-model)
* [Getting Started](/tc-functors/tc/2-getting-started)
* [Installation and Setup](/tc-functors/tc/2.1-installation-and-setup)
* [Creating Your First Topology](/tc-functors/tc/2.2-creating-your-first-topology)
* [Multi-Environment Deployments](/tc-functors/tc/2.3-multi-environment-deployments)
* [Core Concepts](/tc-functors/tc/3-core-concepts)
* [Topologies and Cloud Functors](/tc-functors/tc/3.1-topologies-and-cloud-functors)
* [Functions and Runtimes](/tc-functors/tc/3.2-functions-and-runtimes)
* [Events and EventBridge](/tc-functors/tc/3.3-events-and-eventbridge)
* [Routes and API Gateway](/tc-functors/tc/3.4-routes-and-api-gateway)
* [GraphQL Mutations and Channels](/tc-functors/tc/3.5-graphql-mutations-and-channels)
* [Pages and Static Content](/tc-functors/tc/3.6-pages-and-static-content)
* [Queues and Schedules](/tc-functors/tc/3.7-queues-and-schedules)
* [Namespaces and Sandboxes](/tc-functors/tc/3.8-namespaces-and-sandboxes)
* [Triggers and Pools](/tc-functors/tc/3.9-triggers-and-pools)
* [Compilation and Composition](/tc-functors/tc/4-compilation-and-composition)
* [Specification System](/tc-functors/tc/4.1-specification-system)
* [Topology Composition](/tc-functors/tc/4.2-topology-composition)
* [Resolution System](/tc-functors/tc/4.3-resolution-system)
* [Function Resolution](/tc-functors/tc/4.4-function-resolution)
* [Event and Target Resolution](/tc-functors/tc/4.5-event-and-target-resolution)
* [Build System](/tc-functors/tc/5-build-system)
* [Build Process Overview](/tc-functors/tc/5.1-build-process-overview)
* [Inline and Code Builds](/tc-functors/tc/5.2-inline-and-code-builds)
* [Container Image Builds](/tc-functors/tc/5.3-container-image-builds)
* [Layer and Library Builds](/tc-functors/tc/5.4-layer-and-library-builds)
* [Static Site Builds](/tc-functors/tc/5.5-static-site-builds)
* [Deployment System](/tc-functors/tc/6-deployment-system)
* [Deployment Architecture](/tc-functors/tc/6.1-deployment-architecture)
* [Authentication and Provider System](/tc-functors/tc/6.2-authentication-and-provider-system)
* [IAM Role Management](/tc-functors/tc/6.3-iam-role-management)
* [Function Deployment](/tc-functors/tc/6.4-function-deployment)
* [API Gateway and Route Management](/tc-functors/tc/6.5-api-gateway-and-route-management)
* [EventBridge Integration](/tc-functors/tc/6.6-eventbridge-integration)
* [Static Content Deployment](/tc-functors/tc/6.7-static-content-deployment)
* [AppSync and GraphQL Deployment](/tc-functors/tc/6.8-appsync-and-graphql-deployment)
* [CLI Reference](/tc-functors/tc/7-cli-reference)
* [Core Commands](/tc-functors/tc/7.1-core-commands)
* [Testing and Invocation Commands](/tc-functors/tc/7.2-testing-and-invocation-commands)
* [Management Commands](/tc-functors/tc/7.3-management-commands)
* [Testing and Validation](/tc-functors/tc/8-testing-and-validation)
* [Test Specification](/tc-functors/tc/8.1-test-specification)
* [Function Invocation](/tc-functors/tc/8.2-function-invocation)
* [Local Emulation](/tc-functors/tc/8.3-local-emulation)
* [CI/CD and Operations](/tc-functors/tc/9-cicd-and-operations)
* [CircleCI Integration](/tc-functors/tc/9.1-circleci-integration)
* [Version Management](/tc-functors/tc/9.2-version-management)
* [Snapshots and Pipeline Generation](/tc-functors/tc/9.3-snapshots-and-pipeline-generation)
* [Diff and Change Detection](/tc-functors/tc/9.4-diff-and-change-detection)
* [Configuration Reference](/tc-functors/tc/10-configuration-reference)
* [topology.yml Specification](/tc-functors/tc/10.1-topology.yml-specification)
* [Function Specifications](/tc-functors/tc/10.2-function-specifications)
* [Route and Event Specifications](/tc-functors/tc/10.3-route-and-event-specifications)
* [Infrastructure Configuration](/tc-functors/tc/10.4-infrastructure-configuration)
* [Examples and Patterns](/tc-functors/tc/11-examples-and-patterns)
* [Composition Examples](/tc-functors/tc/11.1-composition-examples)
* [Function Examples](/tc-functors/tc/11.2-function-examples)
* [Architecture Patterns](/tc-functors/tc/11.3-architecture-patterns)
* [Step Function Examples](/tc-functors/tc/11.4-step-function-examples)
* [Pages and Test Examples](/tc-functors/tc/11.5-pages-and-test-examples)
* [Advanced Topics](/tc-functors/tc/12-advanced-topics)
* [Scaffolder and Code Generation](/tc-functors/tc/12.1-scaffolder-and-code-generation)
* [Caching and Performance](/tc-functors/tc/12.2-caching-and-performance)
* [Visualization System](/tc-functors/tc/12.3-visualization-system)
* [Kit Utilities Library](/tc-functors/tc/12.4-kit-utilities-library)
* [Display and Formatting System](/tc-functors/tc/12.5-display-and-formatting-system)
* [Glossary](/tc-functors/tc/13-glossary)
Menu
Overview
========
Relevant source files
* [.gitignore](https://github.com/tc-functors/tc/blob/52c5f399/.gitignore)
* [Cargo.lock](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.lock)
* [Cargo.toml](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml)
* [LICENSE](https://github.com/tc-functors/tc/blob/52c5f399/LICENSE)
* [README.md](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1)
* [lib/deployer/src/aws/channel.rs](https://github.com/tc-functors/tc/blob/52c5f399/lib/deployer/src/aws/channel.rs)
* [src/lib.rs](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs)
* [src/main.rs](https://github.com/tc-functors/tc/blob/52c5f399/src/main.rs)
tc (Topology Composer) is a graph-based, executable architecture description language and framework for cloud-native serverless systems. It enables developers to define cloud infrastructure as composable, namespaced topologies that can be deployed consistently across multiple environments and sandboxes. [README.md7-9](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L7-L9)
This page provides a high-level introduction to tc's core concepts, architecture, and primary workflows. For detailed information about specific subsystems, refer to:
* [System Architecture](/tc-functors/tc/1.1-system-architecture) — Explain the multi-layered architecture with orchestration, specification, composition, and execution layers.
* [Workspace Structure](/tc-functors/tc/1.2-workspace-structure) — Document the Rust workspace organization and library crates.
* [Entity Abstraction Model](/tc-functors/tc/1.3-entity-abstraction-model) — Detail the seven cloud-agnostic entity types and their AWS service mappings.
**Sources:** [README.md1-137](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L1-L137) [src/lib.rs1-250](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L1-L250) [src/main.rs1-94](https://github.com/tc-functors/tc/blob/52c5f399/src/main.rs#L1-L94)
Cloud Functor Concept
---------------------
The central abstraction in tc is the **Cloud Functor** - a namespaced, sandboxed, versioned, and isomorphic topology of serverless components. The term "functor" is borrowed from OCaml's parameterized modules, emphasizing first-class, composable deployment units. [README.md11-12](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L11-L12)
A Cloud Functor consists of:
* **Namespace**: Domain-specific grouping of entities (e.g., `etl`, `auth`). [README.md20-23](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L20-L23)
* **Sandbox**: Isolated deployment environment (e.g., `stable`, `dev`). [README.md25-28](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L25-L28)
* **Version**: Semantic version tag tracking topology state. [README.md11-12](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L11-L12)
* **Entities**: Seven cloud-agnostic primitives (functions, events, mutations, queues, routes, states and channels). [README.md15-18](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L15-L18)
**Isomorphism** means that the same topology definition can be rendered into different cloud environments without modification, with tc handling environment-specific resource resolution automatically. [README.md11-12](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L11-L12)
**Sources:** [README.md11-28](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L11-L28) [Cargo.toml1-92](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml#L1-L92)
Entity Abstraction Model
------------------------
tc provides seven cloud-agnostic entity types that abstract away provider-specific implementation details: [README.md15-18](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L15-L18)
| Entity | Cloud-Agnostic Concept | AWS Service Mapping |
| --- | --- | --- |
| **functions** | Compute units | Lambda / ECS Fargate |
| **events** | Event rules and patterns | EventBridge |
| **routes** | HTTP endpoints | API Gateway |
| **mutations** | GraphQL operations | AppSync GraphQL |
| **queues** | Message queues | SQS |
| **channels** | Pub/Sub messaging | AppSync Events |
| **states** | Workflow orchestration | Step Functions |
Additional supporting entities include **pages** (CloudFront + S3), **triggers** (DynamoDB streams/Cognito), and **schedules** (EventBridge Scheduler). [README.md60-61](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L60-L61) [lib/deployer/src/aws/channel.rs14-15](https://github.com/tc-functors/tc/blob/52c5f399/lib/deployer/src/aws/channel.rs#L14-L15)
**Sources:** [README.md15-61](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L15-L61) [lib/deployer/src/aws/channel.rs1-17](https://github.com/tc-functors/tc/blob/52c5f399/lib/deployer/src/aws/channel.rs#L1-L17)
Topology Definition Format
--------------------------
Topologies are defined in `topology.yml` files using a declarative graph structure: [README.md32-58](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L32-L58)
This example defines an ETL pipeline where an HTTP route triggers a chain of functions, which ultimately publishes to a WebSocket channel - without specifying any infrastructure details. [README.md58-61](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L58-L61)
**Sources:** [README.md30-61](https://github.com/tc-functors/tc/blob/52c5f399/README.md?plain=1#L30-L61)
System Architecture Overview
----------------------------
Title: tc System Architecture
**tc Architecture - Layer Separation**
The system follows a strict layered architecture where each layer has specific responsibilities:
1. **User Interface**: `tc` CLI dispatches commands via `Cmd` enum to core orchestration. [src/main.rs25-94](https://github.com/tc-functors/tc/blob/52c5f399/src/main.rs#L25-L94)
2. **Core Orchestration**: `src/lib.rs` coordinates workflow across subsystems like `builder`, `tester`, and `composer`. [src/lib.rs44-250](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L44-L250)
3. **Specification**: Parsing and configuration management handled by `compiler` and `configurator`. [Cargo.toml28-29](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml#L28-L29)
4. **Composition**: Building and resolving topology graphs via `lib/composer` and `lib/resolver`. [Cargo.toml30-32](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml#L30-L32)
5. **Execution**: Building artifacts and deploying infrastructure via `lib/builder` and `lib/deployer`. [Cargo.toml33-34](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml#L33-L34)
6. **Support**: Cross-cutting concerns like authentication (`lib/provider`) and utilities (`lib/kit`). [Cargo.toml42-45](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml#L42-L45)
**Sources:** [src/lib.rs1-250](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L1-L250) [src/main.rs1-94](https://github.com/tc-functors/tc/blob/52c5f399/src/main.rs#L1-L94) [Cargo.toml28-46](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml#L28-L46)
Primary Deployment Lifecycle
----------------------------
Title: Topology Lifecycle Pipeline
The deployment lifecycle consists of six stages:
1. **Define**: Developers write `topology.yml` and configuration.
2. **Compile**: `compiler::compile()` parses specifications into a `TopologySpec`. [src/lib.rs140-144](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L140-L144)
3. **Compose**: `composer::compose()` merges specs to build the `Topology` graph. [src/lib.rs180-182](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L180-L182)
4. **Resolve**: `resolver::try_resolve()` hydrates templates with dynamic AWS values (Layer ARNs, SSM parameters). [src/lib.rs195](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L195-L195)
5. **Build**: `builder::build()` packages functions using `BuildKind` strategies. [src/lib.rs89](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L89-L89)
6. **Deploy**: The deployer provisions resources in strict dependency order (IAM roles → Functions → Integrations). [src/main.rs36-37](https://github.com/tc-functors/tc/blob/52c5f399/src/main.rs#L36-L37)
**Sources:** [src/lib.rs44-199](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L44-L199) [src/main.rs25-94](https://github.com/tc-functors/tc/blob/52c5f399/src/main.rs#L25-L94)
Core Orchestration Functions
----------------------------
Each CLI command invokes a corresponding orchestration function in `src/lib.rs`:
* `tc build` → `build()`: Builds artifacts using `builder` crate. [src/lib.rs44-98](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L44-L98)
* `tc compile` → `compile()`: Parses YAML using `compiler` crate. [src/lib.rs140-144](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L140-L144)
* `tc compose` → `compose()`: Builds topology graph using `composer` crate. [src/lib.rs166-183](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L166-L183)
* `tc resolve` → `resolve()`: Hydrates graph with AWS values using `resolver` crate. [src/lib.rs185-199](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L185-L199)
* `tc test` → `test()`: Validates deployment using `tester` crate. [src/lib.rs118-131](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L118-L131)
**Sources:** [src/lib.rs1-199](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L1-L199) [src/main.rs25-94](https://github.com/tc-functors/tc/blob/52c5f399/src/main.rs#L25-L94)
Multi-Environment and Sandbox Support
-------------------------------------
tc supports multi-environment deployments through two orthogonal concepts:
* **Environments (Profiles)**: AWS account/region configurations. Corresponds to AWS credential profiles managed via `Auth`. [src/lib.rs28-42](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L28-L42)
* **Sandboxes**: Isolated namespaces within an environment, determined via `resolver::maybe_sandbox`. [src/lib.rs102](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L102-L102)
**Sources:** [src/lib.rs28-110](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L28-L110)
Authentication and Provider System
----------------------------------
The `Auth` struct [src/lib.rs5](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L5-L5) provides centralized authentication for all AWS SDK clients:
* **Centralized Auth**: `init_centralized_auth()` assumes a specific role defined in `Config` to ensure consistent access during builds. [src/lib.rs28-42](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L28-L42)
* **Assumption**: `auth.assume()` supports cross-account role assumption for multi-account topologies. [src/lib.rs40-41](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L40-L41)
**Sources:** [src/lib.rs5-42](https://github.com/tc-functors/tc/blob/52c5f399/src/lib.rs#L5-L42) [Cargo.toml45](https://github.com/tc-functors/tc/blob/52c5f399/Cargo.toml#L45-L45)
Dismiss
Refresh this wiki
This wiki was recently refreshed. Please wait 7 days to refresh again.
### On this page
* [Overview](#overview)
* [Cloud Functor Concept](#cloud-functor-concept)
* [Entity Abstraction Model](#entity-abstraction-model)
* [Topology Definition Format](#topology-definition-format)
* [System Architecture Overview](#system-architecture-overview)
* [Primary Deployment Lifecycle](#primary-deployment-lifecycle)
* [Core Orchestration Functions](#core-orchestration-functions)
* [Multi-Environment and Sandbox Support](#multi-environment-and-sandbox-support)
* [Authentication and Provider System](#authentication-and-provider-system)