The Tomcat, Asterisk, Clojure, and OpenStack Stack
Apache Tomcat
★ 8,172The official Asterisk Project repository.
★ 3,284The Clojure programming language
★ 10,894Repository tracking all OpenStack repositories as submodules. Mirror of code maintained at opendev.org.
★ 5,923The TACO Stack
The TACO stack is a telecommunications-first architecture designed for applications that need to blend real-time voice communication with cloud-native infrastructure. Asterisk serves as the core telephony engine, handling VoIP call routing, media processing, and session management across distributed nodes. This is paired with OpenStack, which provides the underlying infrastructure-as-a-service layer that allows Asterisk instances to be provisioned and scaled dynamically across a private or hybrid cloud environment. The combination lets you treat telephony capacity as a flexible, on-demand resource rather than fixed hardware.
Clojure handles the application logic layer, offering a functional approach to orchestrating Asterisk workflows and managing state in a highly concurrent environment. Its JVM foundation and emphasis on immutability make it well-suited for the complex stateful interactions that telephony systems demand. Tomcat serves as the web application container, exposing REST APIs and webhooks that allow external systems to trigger call flows, query call status, and integrate with business logic. Clojure applications running on Tomcat become the control plane for the Asterisk network, managing everything from call routing rules to billing events to IVR workflows.
The result is a stack where infrastructure elasticity, telephony reliability, and application flexibility work together. You can scale call capacity by spinning up new OpenStack instances with Asterisk, while Clojure services on Tomcat maintain consistent business logic and call orchestration across the fleet. This is particularly effective for contact centers, telecom platforms, and any system where voice is a primary customer interaction channel.