January 14, 2025

How Splio rebuilt their campaign management tool with Infinitic

How Splio rebuilt their campaign management tool with Infinitic

About Splio

Splio is a SaaS marketing platform for retail and e-commerce brands that enables customers to maximize value at each interaction with their customers.  Their product integrates CDP and Marketing Automation, offering essential CRM features (loyalty, Mobile Wallets), into a single platform powered by AI.

Use Case: Rebuild the Splio Campaign Manager

Splio's Campaign Manager is a key feature that enables brand marketers to activate customer data and activity to send personalized communications at the right moment across different channels to drive customer engagement and sales.

It offers a simple drag and drop interface that enables marketers to easily create and manage custom campaigns (aka workflows) that:

  • React to real time customer activity, such as an in-store visit, signup, purchase or social interaction
  • Reach out in designated channels such as email, text or social messaging
  • At designated timing based on selected conditions (responded or didn’t respond for 3 days)
  • With personalized content based on purchase history, customer data and interactions with the brand.

Brands can monitor and measure the overall performance of campaigns and individual customers across multiple channels.

Challenges:

Previously, the Campaign Manager was built on aging infrastructure and could not support features and functionality that customers needed - especially real time/event based use cases. 

A few specific problems:

  • Older Infrastructure/Not Event Based: They relied on database polling for checking to see which users met the criteria or had taken specific actions. This was slow, resource-intensive, and was almost maxed out.
  • Blocking new features: Because they had to rely on polling a database, they could not segment users based on individual actions or recent activity.  This prevented them from enabling brands to generate multi-step campaigns that were personalized based on customer activity.   Also, without an event-based system, they could not support ‘near time’ events and trigger communications when a customer did something such as make a purchase or click on a link.  
  • Fragile System: They had built up ‘spaghetti’ code for interacting with external APIs, internal services and databases.  This code was brittle, hard to troubleshoot and hard to make updates without risking stability.
  • Technical Debt: Consumed valuable engineering resources.

Business Requirements:

Splio needed to build a new campaign management system that would enable them to:

  • Move to an Event-Driven model: So that they could support real time use cases, segmentation and personalization.

  • Move Fast with a Small Team: Due to market and sales pressures, they needed to be able to deliver a first version within 6 months and only had a team of 5 engineers working on the project.

  • Launch at scale: With 600+ customers, there was very little margin for failure and it needed it to be able to support 1M+campaigns per day without incident at launch.

    “We were in a phase of discovering what we needed to build - we needed to a base level of features day 1 and then make tweaks and add on as we see usage and get feedback”

  • Rapid iteration and new feature development: They needed the flexibility to launch a basic feature set and iterate quickly based on user feedback as well as quickly migrate all existing features over to the new system once it was launched.

    “Before we rolled out a whole new campaign system we wanted to be able to roll out a set of features and add to them - specifically around ‘low latency real time campaigns’ that we weren’t able to offer the way we wanted before.”

  • Easily Interface with infrastructure managed by other teams - The campaigns needed to be able to access customer data and activity across multiple internal services and some external APIs including events produced in their Kafka stream by other teams.

  • Backend Orchestration Framework: They knew that they did not have the resources to build custom backend tooling to manage the queuing, event management and error handling so wanted to find an orchestration framework that included this tooling and would enable their team to focus on building and iterating on the core application code.

Why Splio Choose Infinitic:

The Splio team evaluated building out their custom backend tooling to support the campaign manager but determined that would take 12-18 months and would give them neither flexibility to iterate nor the reliability at scale that they required. [link to to other article]

An orchestration framework to save their team time and deliver reliability “Day 1”.

While building custom tooling would enable them to build everything from scratch, the first version would lack all of the backend tooling that provides visibility and handles all of the edge cases. And, as soon as they began making updates or adding more features, they would quickly accumulate tech debt and end up back where they started spending most of their time on maintenance and fixing code.

With an orchestration framework - like Infinitic, their team could focus on building the core code/features that they needed while relying on Infinitic for built-in error management and observability and automating the configuration and management of event-streaming, queuing and state management.

Infinitic allowed us to move to an event-driven system without building out and maintaining a data streaming infrastructure.”

Our campaigns had to interact with a lot of services that were sometimes finicky or had rate limits. With Infinitic we could easily configure how we interacted with those services and handled any outages or downtime. They would have had to build themselves.

Simplified architecture for complex use cases:

“An event-driven architecture with a queuing system”.

They also loved the architecture of Infinitic which simplified their code, allowing them to separate the task or activity in the worker from the workflow/orchestration code with the state management happening inside Infintiic. This enabled anyone on the team to easily understand and update each portion of the code and avoid ‘spaghetti’ code mixing activity logic with event handling or error management.

Open Source Framework built on Apache Pulsar:

As Infinitic is an open source orchestration framework built on top of Apache Pulsar, they felt confident in Apache Pulsar as a proven reliable and scalable engine that is supported by the community. They were also already familiar with Apache Kafka, a similar data-streaming technology.

Between its architecture and reliance on familiar data-streaming technology, they felt that it offered a manageable learning curve for their team compared to other frameworks and confidence in its ability to deliver performance at scale.

Implementation of Infinitic:

Splio shipped the first version of the campaign manager to their customers after 6 months of development. They started with real-time ‘low latency’ campaigns to customers and then quickly started adding new features - over 20 features in a matter of months which would have taken years without Infinitic and would not have worked as well.

“Day 1”: When they launched the first version, everything worked as expected - which is unusual for a brand new application which would normally require months of internal testing and bug fixing and a long beta period. They were quickly running millions of workflows per day without any issues. The team was easily able to add features and updates rapidly - just by updating and versioning the workflow code.

“Without Infinitic it would have taken at least 6 more months to complete and we would not have had the same level of features. Also, we would have had a lot of headaches”

Three years later (2024), they have run over 3 billion workflows with minimal incidents. Their team has stayed small and lean while scaling both volume and features, since Infinitic handles the overhead of managing the backend tooling.

They can now build an end to end ‘new feature’ in a 2-week development cycle instead of taking a few months.

Impact of Infinitic

“Build features ‘super fast’ without issue”

With Infinitic, Splio’s team can build and deploy a new feature into production in 2 weeks instead of a few months.

“We have built way more features using Infinitic than we could have on our own. In the last few months we’ve built over 20 new features. Without infinitic, we probably would have only been able to build a few”

Minimal backend code: Due to the minimal amount of backend code required for new functionality, they spend the bulk of the two weeks on the front end UI (!) and only have to write new tasks or activities and make updates to the logic in the workflow code on the backend.

Limited Testing Required: Once the updates are made, they are able to easily test the new workflow version by deploying it to staging and testing the new activities.

No risk of disruption to existing campaigns: When updates are made, they are able to release a new version of existing workflows without impacting any campaigns that are currently running - since some of the campaigns span weeks or months. This ensures that any updates to the workflow do not impact existing customers

One example is a recent feature they added to cap the amount of emails that a brand sends to a single customer across all campaigns in a specified period of time.

Why the Splio Engineering Team Loves Infinitic:

While Infinitic has delivered a lot of advantages for Splio’s customers, the engineering team has been happy with the impact it has had on their day to day operations.

Simplicity of code:  With Infinitic automating and managing all of the boilerplate ‘code’, there is less code & tech debt for the team to maintain which makes their codebase smaller and more focused. Infinitic’s architecture creates a separation of ‘tasks’ within the codebase and all of the plumbing and infrastructure management.

“Our team loves Infinitic because the code is cleaner and more focused on product and business logic while all of the ‘plumbing’ for error handling and sending/receiving events is separate (and templated in Infinitic) so the team doesn’t have to manage it - they can just focus on the product/business logic”

New features ‘Just Work’:  Infinitic reduces the burden of testing and managing all of the tooling when building a new feature. This allows the team to focus on the ‘fun part’ of how the product should work and iterate rapidly on core functionality. Also, since they can easily deploy new workflow versions without ‘breaking’ anything for ongoing campaigns and customers they can ship updates faster without headaches.