technology overview
Executive Summary
Our Townsquare™ product is provided primarily via the Software as a Service (SaaS) model, which means MIG's technology group maintains the infrastructure supporting the web application. The SaaS model allows us to leverage economies of scale while eliminating the need for our clients to provide a managed host solution. The benefits of the SaaS model are straightforward: it lowers costs and enables higher levels of service.
Townsquare's™ supporting infrastructure is designed from the ground up to be highly available; we strive for uptime availability exceeding 99.9%. It is our belief that high quality customer service starts with provding rock solid reliability. Therefore, all elements of our infrastructure have backup systems; in fact, many have 2 or more backup systems.
The Townsquare web software application is built on the open source LAMP platform (see below for technical details). By leveraging open source tools, we are able to reduce costs and produce higher quality software faster. We also actively contribute back to the open source community.
Engineering Summary
Our servers are located at the Tier 1 colocation provider, Nacio. Nacio is an N+2 fault tolerant facility with redundant systems in place including: network hardware, uninteruptable power supplies and generators available in case of a power emergency. Nacio also utilizes dual OC-48 fiber entry points to ensure network uptime. The highest levels of security access is provided through keycard and biometric identification.
Our production server environment and infrastructure at our colocation facility consists of the following:
- dual-redundant (hot failover) firewalls
- dual-redundant (hot failover) load balancers
- multiple redundant webservers (load balanced and hot failover)
- dual-redundant disk-to-disk backup and file storage with RAID and redundant power
- dual (replicated) database servers with RAID and redundant power
Our development environment uses the extended "LAMP solution stack," (Linux, Apache, MySQL, PHP, PostgreSQL, Perl and Python). We primarily use Apache, PHP and PostgreSQL, but use MySQL, Perl and Python when they better meet a particular need. We also utilize (where effective) our own code generation engine, and the CakePHP "Rapid development framework" based on MVC (model view controller). If you are unfamiliar with CakePHP, its similar to the much hyped Rails framework for Ruby. In general, our development approach is based on the premise that having a big "tool box" at our disposal helps make very talented software engineers even more effective developers.
In addition, we use CVS for source control, bugzilla for bug tracking, and media wiki for documentation.


