Bengaluru-based PushEngage has deployed open source technologies such as Apache, Bootstrap, MongoDB, MySQL, Node.js and Nginx to handle its push notification service. More than half of its clients are based outside the country.
The digital marketing world has been ruled by the electronic direct mailer (eDM) for quite some time. But the eDM is now making way for push notifications. Be it an e-commerce site or an online news publication, Web masters are deploying push notifications to grow their traffic as well as enhance their brand. But what does a push notification provider deploy to serve a bulk of notifications? Well, it is usually an open source solution!
Bengaluru-based PushEngage is among the few early adopters of push notifications. The company had built an in-house product to test the success rate of notifications circulated over-the-air at the time when Google offered the same support to Chrome in April 2015. The initial results were strong enough to commercialise the product.
“We saw robust results even at the early stage, which is when we started considering building PushEngage and went on to create an automated marketing platform for browser-based push notifications, available to all,” recalls Ravi Trivedi, founder and CEO, PushEngage.
With a small team of just 10 employees, Trivedi’s PushEngage handles marketing automation through notifications for more than 6,000 clients around the world. The total client base sends over 20 million notifications on a daily basis. All of that comes from 40 servers that run in the cloud, and use a mix of proprietary and open source solutions at the back-end.
The prime reason behind the mountainous growth of PushEngage is the ease of its deployment on any website. Local search site AskLaila, which receives over a million monthly unique visits, claims that notifications through PushEngage can be deployed in as early as ten minutes. The service has also helped the company retain its users. “With PushEngage notifications, we have been able to reach out to users who are not active on the site and provide them with helpful offers or information,” says Nitin Agrawal, director of engineering, Asklaila.com.
Bringing community offerings to the mainstream
Trivedi tells Open Source For You that while his company had initially chosen components that helped to scale better, along with a faster development time, the team has now planned to look for community-based alternatives once the product and its technology stack mature. “We began with proprietary solutions so that someone could handle the complexity and scale in the beginning. For instance, using AWS (Amazon Web Services) Kinesis, instead of Apache Kafka, provides multiple shards and easy scalability,” the founder mentions.
Being a great fan of open source technologies since the time he did his master’s in computer science at the Indian Institute of Science in Bengaluru, Trivedi wants to rely entirely on open source.
PushEngage already uses the Nginx server to scale connections for sending push notifications to Web browsers, and there are plans to switch to Apache Kafka from the proprietary Kinesis solution — to use a server architecture solely based on open source technologies.
The process of enabling automation
PushEngage uses open APIs provided by Web browsers such as Chrome, Firefox and Safari that adhere to the W3C-Push standards. In addition to leveraging the available APIs, the company uses its internally built libraries that have Node.js as a programming language and MongoDB as a data store.
“The open source technologies behind PushEngage help us become more competitive as these solutions are tested thoroughly for scale, security and bugs. The deployment of open source also reduces our maintenance tasks and offers us the freedom to move across any cloud provider without a vendor lock-in,” Trivedi says.
Challenges of mass adoption
Even though open source has made PushEngage capable of delivering push notifications on a massive scale, catering to thousands of clients was not easy for the company in the early stages. “Push notifications send and receive messages in bursts, and hence the peak capacities are very high but of a short duration. Building a scalable solution around these issues requires well thought out architecture and solid engineering,” explains Trivedi.
The first version of the automated model was a minimally viable product. However, subsequent versions enabled the engineers to incorporate a highly scalable and efficient combination that helps to send and receive messages on a large scale.
Apart from building just a scalable solution, the PushEngage team was required to set up a datastore that could generate queries on several attributes in real-time and push messages at a fast pace. There was also a need for datastores that had high read characteristics.
PushEngage moved to a microservice-powered, asynchronous message-based architecture to overcome the primary challenges. “The deployment of appropriate architecture provided us with the desired burst-mode scalability as well as fast enough results for our customers,” says Trivedi.
The role of the community
To build a secure and advanced logging system, as well as testing frameworks for automating notifications, PushEngage took help from the open source community, accessing libraries on GitHub and SourceForge. “Online listings of open source developments are quite handy in finding good libraries, so we don’t have to re-invent the wheel,” says Trivedi.
PushEngage is also committed to giving back to the community and developers worldwide. The company has already provided a push notification API free to developers. This allows any developer to integrate all the rich features of customer segmentation, automation, scheduling and triggering notifications, as well as geotargeting.
Open source adoption cuts costs
According to Trivedi, deploying open source helped his company to reduce the cost of the project by 25 per cent. “Open source adoption enabled PushEngage to reduce not just initial operational costs but also our ongoing cost of product development,” he notes.
Moreover, open source is making the automation process through PushEngage future-proof. “We have a microservice-based architecture built for horizontal scaling. We also use queue-based message passing, as well as datastores that are strong in both read and write characteristics and have a scalable database service. All this ensures our scaling needs are well met,” says Trivedi.
The company also uses relational and non-relational databases, depending on the need of the architecture. All this makes the push notification technology capable of expanding, with the addition of new components and features in the future.