How We Built an Enterprise Data Migration Service with Golang at Zendesk

Posted by:

Jimmy NguyenJimmy Nguyen

At Zendesk, we faced the challenge of migrating enterprise customers from their existing customer support systems to our platform. While we had a huge number of retail customers, our most significant revenue came from the enterprise sector. These customers needed to migrate their customer support systems, which included chat, knowledge management, and other elements, to our platform.

The task at hand was complicated by the complexity of the enterprise systems and their business logic. We needed to find a way to not only create a working solution that could parse, extract, and import data from one enterprise system to our system but also extract the most reused parts along the way. Initially, we heavily used Ruby as it was the language at the heart of Zendesk. However, as we progressed, we realized that we needed to reduce the number of nodes to save on costs and improve performance. That’s when we moved to Go, a simple and very fast language that is highly productive for the team.

Our team ended up creating a service that helped to import data from different systems. We designed the service to have standard import capabilities from the most commonly used support systems. Additionally, the service was designed to be extendable for custom logic if needed. The overall goal was to make the migration process as smooth and seamless as possible for our enterprise customers.

One of the key technologies we used was Rails, a popular web application framework for Ruby. Rails allowed us to build robust, scalable, and maintainable systems quickly. We also used Golang, a modern programming language that excels in handling large amounts of data and is known for its fast performance. Using these two technologies, we were able to create a powerful import service that met the unique needs of our enterprise customers.

Finally, we leveraged RESTful APIs to integrate our import service with various customer support systems. This allowed us to seamlessly import data from the customers’ systems into our platform. In conclusion, the process of migrating enterprise customers from their existing support systems to Zendesk was a complex task that required a lot of attention to detail. However, by using the right technologies and approaches, we were able to successfully deliver a solution that met the needs of our enterprise customers and helped to drive revenue for the company.

Tech stacks: Ruby, Golang