Skip to content

FAQ

A cloud functor is an acyclic DAG (topology) of composable cloud entities viz functions, mutations, events, routes, states, queues and channels. tc implements the Cloud Functor pattern.

Why does it have to be a topology or a graph ?

Section titled “Why does it have to be a topology or a graph ?”

In the Cloud Functor world, a lambda is a not a micro service, a topology is. A topology comprises of core entities (functions, mutations, events, routes, states, queues, pages and channels) and their components. This topology is considered a single atomic unit of deployment. tc composes these and builds a graph to ascertain their dependencies, order of creation by doing a topology sort etc.

How does it compare to other Cloud deployers ?

Section titled “How does it compare to other Cloud deployers ?”

tc is an application composer that implements the Cloud Functor pattern. It is not fair to compare these tools as all of them are unique and suited for different needs. tc may or may not be for you.

TerraformAmplifyServerlessSSTtc
Entity AbstractionNoNoNoNoYes
Entity CompositionNoNoNoNoYes
Dynamic PermissionsNoNoNoNoYes
Dynamic FlowsNoNoNoNoYes
StatefulYesYesYesYesNo
NamespacingNoNoNoNoYes
SandboxingNoNoNoYesYes
CanariesNoNoNoNoYes
Written inGoNodejsNodejsTypescriptRust
IACYesYesGenerated
FullstackMaybeYesYesYesYes
Cloud AgnosticYesNoNoNo
Function buildersNoNoLimitedLimitedSophisticated
LicenseBSLApache2.0MITMITMIT

If tc generates the infrastructure boilerplate, can I modify and update it ?

Section titled “If tc generates the infrastructure boilerplate, can I modify and update it ?”

For the most part, the generated permissions, defaults are good for development and prototype. However, if you need something auditable, it can always be overlayed See https://tc-functors.org/entities/functions#permissions