Lisp
For engineers who wish to use a proper programming language to express the entities and their composition, there is a Lisp interpreter that transpiles and composes the topology to a bincode format.
(ns my-app)
(defroute api :path "/api" :method :post :authorizer 'authorizer)
(defun bar :uri "https://github.com/myorg/bar")
(defevent Completed)
(defchannel my-room)
(compose route/api function/bar event/Completed channel/my-room)
tc-lisp topology.lisp | tc create -s dev1 -e dev --bin
We can also define more complex flows that use the map
and reduce
for example:
(compose route/api (map '(function/bar function/baz)) (reduce) event/Completed channel/my-room)
Emacs integration
Section titled “Emacs integration”tc-lisp-mode wip