Developer Diaries: Crafting Scalable Solutions for Enterprises
At Tanla, we take pride in the scalability of our solutions. As enterprises grow, our solutions grow with them, deftly managing increased traffic and exponential transaction volumes. This is possible due to the foresight and skill of our development teams which incorporate scalability into the very DNA of the work they do.
To peek behind the curtain and gain some insights into the process of building scalable solutions, we had a conversation with two of our most skilled developers – Bawajan Shaik and Thanga Prakash Somasundaram.
The Journey to Tanla
Bawajan joined us from Unicel, which was acquired by Tanla. Speaking about his career path so far, he says “Initially, I joined as a support engineer and not a developer. I did technical support for two years and then spent around four years working on an IVR voice system. After six years I moved to Java where I worked on the SMS and email platforms. At Tanla, my role is that of a Java developer and I currently work on the email platform. I also work on the SMS MO and WhatsApp back-end campaign.”
Thanga Prakash is one of our most experienced developers. With 21 years in the industry, he describes his journey to Tanla “The first nine years of my career were in telecom, the next nine in system and cloud management, and three years in digital payments before eventually landing up at Tanla in April 2021. I completed my MS from IIT Madras as a research scholar. I’m a scalability expert and my interest motivates me to work in environments like Tanla.”
Scalability in action
Since both Bawajan and Thanga Prakash work on our email platform, scaling solutions to meet different requirements is something they deal with on a daily basis.
“Early on, our email platform could handle somewhere around 15 million traffic per day. Later, this got increased to somewhere around 60 million. When a customer would send large volumes of data (exceeding 15 million) to our platform, it used to be an issue.
To solve this, we introduced a storage software called Kafka – an open-source, distributed messaging system. Using this software, we are able to segregate incoming data and store it at the Kafka storage point initially. We don’t push all the data to the platform immediately to avoid overwhelming it. Using Kafka, we send 2000 to 4000 units of data to the platform per second ensuring smooth functioning.
We have implemented a similar solution for the MO SMS platform which has grown from handling small amounts of data to over three million units per day. Here we use Redis, a NoSQL database, to scale the database horizontally as well as vertically. When data comes in, we segregate it between multiple servers.
Even in the WhatsApp campaign manager, a customer can upload five million units of data at a time. Instead of processing these units from one instance and application, we divide the five million units into smaller chunks and use a threading process to consume smaller units and process it onto the platform. This way, we ensure that the platform does not get throttled or strained.” Bawajan says.
Thanga Prakash adds “Our email solution started small, handling a few million units per day. But currently, we are able to scale up to 8 million per hour. In December 2021 alone, we processed 1.35 billion mails – a number which used to be close to our annual figures a short while ago. Once we make all the compounds multi-instance, scaling can be ramped up easily depending on the traffic demand. The level of scalability present at Tanla is something I had never seen before in my career.”
The challenges of massive scaling
“The biggest challenge as far as scaling goes is customization,” says Thanga Prakash. “Although we are leading in the space, we have a lot of customization for each product. On the email platform itself, we have around 34 different components and services that have unique configurations for different customers. Whenever we look at customizing the platform, we need to consider all the dependencies that will come up during the process.”
Reflecting on areas of potential improvement, he says “Since every customization is tailored to a specific customer, they don’t have much transferability to other customers. The data centers where the services are deployed should maintain logs of the kind of issues they face. As a platform, we have to do a lot of internal improvisation to process efficiently and avoid reworking. Luckily, my experience of several years working with the C language allows me to identify bottlenecks at the test level.”
Bawajan talks about the customer-facing side of scalability “We have customers with low traffic and high traffic. Without the scalability we have implemented, all traffic would be processed on a first-come-first-serve pipeline. So, a customer who initiated a bulk traffic campaign earlier in the pipeline would bottleneck the traffic from a smaller customer further down in the pipeline until the first customer’s data is processed completely.
With Kafka, we are able to segregate traffic into different priorities and different servers, offering the same processing for all customers without any delays. We suggest that our customers create separate accounts for high and low-priority users. For example, OTP is a high priority, so we suggest that customers choose high-priority campaigns for OTP to avoid any delays.”
How do different teams collaborate within Tanla while building complex solutions?
Managing several high-volume and high-impact solutions can get stressful, but the developers at Tanla are able to make it work with strategic collaboration.
“I used to initiate marketing interlock meetings once a week with the product team. Recently, we also added a QA and systems production team to gather feedback. This allows us to get the needs and recommendations of our customers from the product manager as well as a day-to-day understanding of how the production team is handling the situation.” Thanga Prakash says.
He continues “For me as a developer, everyone else is a customer – the production team, the QA team, and of course the actual clients. We prioritize incoming feedback and organize our internal team to handle the system responsible for the service in question. Earlier, whenever a product recommendation came in the product team would work on it, and sometimes more feedback would come in before making the solution live. What I did was align all the people involved on the same page to avoid going back and forth unnecessarily. Now, we only deliver the product once we have complete alignment between all internal teams from the product manager to QA and systems.”
The road ahead
Several Tanla products have become market leaders, but our drive to continue pushing the limits and breaking through technological barriers is as strong as ever. With talents like Bawajan and Thanga Prakash at the helm, we look forward to building even more cutting-edge, highly scalable enterprise solutions that benefit all our stakeholders and establish new benchmarks in the industry.