Written by Charlie Curtis and Scott Nyberg.
To remain competitive in today’s marketplace, companies’ marketing leads must convert into sales; however; 40% of business leaders believe their existing marketing efforts are outdated. Pivoting from archaic marketing tools to automated software like Salesforce’s Marketing Cloud Account Engagement (MCAE) significantly enhances companies’ lead generation process and helps boost revenue. Companies that use mature lead generation processes produce 133% more revenue than average.
MCAE helps Salesforce customers simplify and scale how they market to their customers, removing the need for manual, hands-on parsing to qualify leads. MCAE simplifies marketers’ work via automated lead segmentation and automated, customized customer experiences — including email campaigns — which rapidly qualify leads for their company’s sales team to convert.
Marketing Cloud’s production engineering scale team is the engine behind MCAE’s engineering, supporting the above features while updating customers’ constantly changing lead data in near real-time.
Among its many activities, the scale team updates existing lead segmentation and inserts new segmentations.
Ensuring lead integrity through systems maintenance formerly consumed much of the team’s day-to-day, requiring them to perform hands-on management of their message queuing service and database querying system. However, the team recently adopted powerful new tools to solve these challenges — further improving the quality of customer leads.
How does the automation system power scaling and reliability for message-based communications?
To drive the effectiveness of customized customer experiences — known as Engagement Studio campaigns — MCAE’s automation system continually ingests customer change events and determines if any customer automation should be updated. This ensures the right emails are sent to the right leads at the right time.
For example, a dynamic data change event in the system — such as a customer lead relocating from the West Coast to the East Coast — could trigger the automation system to delete the lead from a Western list and add them to an Eastern list. This single event could also spark a butterfly effect, causing cascading changes throughout the system, requiring 15 or more dynamic lists — which are controlled by the automation system and a core tenet within MCAE — to be updated.
Customers expect our systems to be highly available and near real-time. Operating at scale is a requirement in today’s age, and our system handles hundreds of millions of events each day while being as performant as possible. This high change volume overwhelmed the scale team’s legacy automation system — consisting of a fleet of self-provisioned instances
Consequently, the team devoted considerable hands-on time to managing the system, providing security updates and maintenance to keep the service running smoothly.
To improve message queuing scale and reliability, the team recently migrated to Queue Platform (QP), an internally built system that democratizes message queueing for all internal teams for powering their services. QP leverages a new underlying infrastructure to provide a near-infinite scale for message throughput. QP also intelligently detects the amount of pending work that needs to be performed and automatically scales the number of message consumers appropriately. Migrating existing mission-critical systems onto QP required large amounts of refactoring, which posed a great challenge for the team.
The system seamlessly scales in support of thousands of requests per second.
To support the migration, the team re-wrote mission-critical parts of their software. The risk during this migration was high because marketers rely on this data to determine which leads to email. If the team had incorrectly computed their data, it could have resulted in MCAE customers sending emails to the wrong leads. Consequently, this could have damaged Salesforce’s reputation and violated compliance laws. Ultimately, the team seamlessly executed the migration without incurring any bugs or disrupting customer service while continuing to operate at the scale required — a major achievement for a refactoring of this size.
Migrating from a bespoke system tailored to one use case to a versatile platform that powers many features has delivered major improvements. Since the migration, QP continues to serve as a force multiplier for the organization, providing internal teams with an out-of-the-box, reliable, and scalable queuing solution. QP handles mundane and time-consuming tasks such as infrastructure maintenance and allows developers to spend more time focused on customer success.
How does the automation system circumvent lead data processing bottlenecks?
Keeping list-based memberships updated creates many technical challenges on the backend, including how to most efficiently query (retrieve) and process lead data from databases in the wake of countless daily events that can create bottlenecks due to the high scale of circulated data.
Querying lead data occurs when MCAE’s automation system detects change events in real-time and determines which data must be pulled from the database. Querying typically triggers MCAE’s decision engine to take the appropriate action, including updating a list. Horizontally scaling our databases has been a recipe for success. For example, by using several read replicas — multiple instances of their main database — query processing spread across multiple server databases to handle increased workloads. This horizontal scaling enables the system to more efficiently query databases, reducing the strain on the main database and decreasing cycle times sometimes by an order of magnitude.
Additionally, the automation system must dynamically scale to meet the various changes in system demand throughout the day. The system implements custom scaling logic, powered by Kubernetes, that intelligently detects increases in lead data processing demand and responds accordingly by scaling system capacity. As system demand returns to its baseline, the extra resources are deallocated, which subsequently reduces the system’s cost-to-serve.