September 20, 2017 News & Trends

As Director of Software Architecture, Dev Ops, and Attribution at DialogTech, I can tell you that we have several “good problems to have.” One is the success of SourceTrak, our call tracking service, and, more specifically, keeping up with customer demand and scalability.

With SourceTrak you can track phone calls from your website back to any marketing interaction, including digital ads, keyword searches, emails, and web pages. This allows marketers to connect the dots between the online and offline journeys as leads transition from a website activity to a telephone call to visiting a business location.

While DialogTech has historically handled millions of telephone calls per month, handling the web session traffic of all of our SourceTrak customers has risen dramatically over the last few years. We now handle hundreds of millions of web session requests per month. So how exactly does DialogTech ensure we provide the most scalable and reliable platform to our customers?

We Stay Ahead Of Customer Demands

As our customer base grows, and as our customers’ businesses grow, our volume of tracked web sessions continues to rise. We routinely examine our infrastructure and growth trends in order to assure that we will be prepared for month-over-month and year-over-year growth.

Because of this ongoing diligence, we are able to identify potential bottlenecks in our current infrastructure. By addressing these roadblocks aggressively, we continue to provide room for future growth.

We Have A Near Infinitely Scalable Solution

Our call tracking solution runs primarily on Amazon Web Services (AWS). AWS is a comprehensive, evolving cloud computing platform used by some of the largest enterprise brands and public sector organizations, including Kellogg’s, Dow Jones, Airbnb, the FDA, and hundreds more. Many of AWS components are horizontally scalable, meaning that we can quickly and easily add more servers, and there is a direct relationship to the amount of additional capacity we gain.

We Constantly Evaluate New Technology to Increase Scalability

We previously used a relational database to store configuration data, application runtime data, and data used for historical reporting. Unfortunately, relational databases are not as flexible when it comes to adding capacity.

Therefore, we have replaced our relational database with a non-relational database, which is known for its ability to scale in a horizontal manner. While it can place restrictions on the ways that data is aggregated and explored, in our case of retrofitting an existing application, the data use cases are fairly well known. We can structure the data to allow for quick and easy access to what is required, while gaining the ability to incrementally scale up our reporting database.

We Implement New Solutions to Reduce Database Load and Increase Data Storage

Much like the adage of “half of my marketing dollars are wasted, but I don’t know which half,” when collecting metrics on web session traffic, the first and last touches are often the most interesting. The problem is, one doesn’t know which touch is the last one until some point down the road. Consequently, every touch must be stored and considered the valuable “last touch” until moments later when another touch occurs. At this moment, that prior touch is suddenly far less interesting. This process significantly adds to the load on the relational database.

To combat this, we’ve implemented an in-memory buffer system to initially hold every touch. This is a very fast (and redundant) data store used to temporarily keep each touch without the need for the slower write to the durable data store. This offloads a significant portion of the database load and allows us to do fewer writes to long-term storage.

We Can Scale in a Short Timeframe

With these practices and solutions in place, we continue to reduce the overall load on our database systems and gain horizontal scalability. Overall, we have created a software architecture that can scale in small increments. We retain the same application feature set, while continuing to serve our existing customers, large and small.

By investing in a flexible and scalable approach, we can accommodate large new customers in a short timeframe without risk to our existing user base. We also create a strong base on which we will continue to add new functionality to keep SourceTrak the market leader in the call tracking space.

If you’d like to learn more about call tracking and our SourceTrak technology, let’s chat! Request a demo today.

About the author:

Tom Verbiscer

Director of Software Architecture, Dev Ops, and Attribution, DialogTech

Tom leads many teams at DialogTech, including Software Architecture, Dev Ops, and Attribution, who evaluate and advise on major features, functionality, and scalability of the DialogTech platform. His team is responsible for proactively assessing our software in order to prevent system limitations. With his Bachelor’s degree in Computer Engineering from the University of Illinois at Chicago and his Master’s degree in Computer Science from DePaul University, Tom is passionate about creating world-class products and building great teams.

Enjoying our content?

Get the latest straight to your inbox.