Skip to content
AT
All case studies
B2B Software 2024 4 months

Salesforce ↔ Marketo Sync Service

A NestJS microservice keeping leads, contacts and activities consistent between Salesforce and Marketo under strict API rate limits — with replayable failures.

Client
Enterprise MarTech client
My role
Backend engineer
Team
2 engineers
records synced / month
2M+
sync success rate
99.9%
failures replayable
100%

The challenge

The existing sync was a cron script that fetched everything, pushed everything, and failed silently. When it hit a Salesforce API limit it dropped the batch; nobody found out until a sales rep noticed a missing lead days later. Rebuilding it meant handling two APIs with different rate-limit models, different field semantics and no shared identifier.

The solution

I built a standalone NestJS service around a RabbitMQ topology: one queue per direction, a delay queue for rate-limited retries with exponential backoff, and a dead-letter queue that keeps the original payload so any failure can be inspected and replayed by hand.

Every operation is idempotent on an external-ID key, so replays are safe. Field mapping and transformation rules live in configuration rather than code, which means marketing ops can add a custom field without a deployment. MongoDB stores sync state and a full payload history for debugging, and a small status endpoint surfaces queue depth and last-success timestamps to monitoring.

The outcome

Silent data loss stopped being a category of incident: failures now surface within minutes and every one of them is replayable from stored payloads.

Technical highlights

  • RabbitMQ retry, delay and dead-letter topology
  • Config-driven field mapping — no deploy for a new custom field
  • Full payload history in MongoDB for audit and replay

Stack

Node.js NestJS REST APIs MongoDB RabbitMQ Salesforce Marketo

More work

Read the Partner Portal for an Enterprise SaaS Vendor case study
B2B SaaS / 2025

Partner Portal for an Enterprise SaaS Vendor

A multi-tenant portal where 600+ resellers register deals, track commission and pull co-marketing assets — with every deal mirrored into Salesforce in...

PHP Laravel REST APIs Vue 3 MySQL +2
Read case study
Read the Multi-Touch Attribution Dashboard case study
Manufacturing / 2025

Multi-Touch Attribution Dashboard

Campaign reporting across Marketo, Salesforce and web analytics — 40M+ touchpoints rendered as funnel, cohort and attribution views that load in under...

PHP Laravel Vue 3 MySQL Salesforce +1
Read case study

Facing a similar problem?

Tell me where it hurts — integrations dropping records, a dashboard nobody trusts, or a legacy portal you cannot safely touch.

Start a conversation