✦ Enterprise Integration · HR, Payroll & Employee Onboarding

In production

Connecting HR and Payroll in Seconds, Not Overnight

How a legacy batch integration was replaced with an event-driven architecture, connecting three enterprise applications through a shared employee data layer.

  • 3 + 1applications and one canonical employee layerDelivered
  • 99%processing reliabilityTeam-reported
  • Secondsinstead of hours or days to synchroniseTeam-reported
In production
October 2026
Legacy batch
Retired
Backbone
Kafka + Outbox / Inbox

→ or swipe to begin

✦ The challenge

Where it started

When employee information changes, several business systems need to reflect it. A new hire, promotion or contractual change can affect HR records, payroll calculations and onboarding workflows.

The existing integration relied on a legacy batch-processing system. Updates could take hours or longer to propagate, and investigating failed transfers was difficult. When records became inconsistent, HR teams often needed IT support to find problems and coordinate corrections.

The challenge was not to replace these applications. It was to make them work together reliably, with faster updates and greater visibility into what happened to each employee record.

Three applications to alignDelivered
  • Oracle HCMEmployee records, organisational structures and HR movements
  • TOTVS RMPayroll, leave and related employee information
  • SydleEmployee onboarding workflows

✦ Our approach

How we tackled it

A canonical Employee Database gives the connected applications one consistent reference. Instead of point-to-point integrations, each application talks through a dedicated adapter that transforms data into a common structure, validates business rules and propagates changes.

  1. 01

    Map the data flows

    Step 1

    Identify which application owns each employee attribute.

  2. 02

    Define validation rules

    Step 2

    Agree rules with HR stakeholders so incorrect or incomplete data is rejected before propagation.

  3. 03

    Event-driven synchronisation

    Step 3

    Implement it, beginning with the onboarding workflow.

  4. 04

    Run old and new in parallel

    Step 4

    Validate record consistency across both processes.

  5. 05

    Retire the batch

    Step 5

    Switch off the legacy process once the replacement flows are confirmed.

The core integration went into production in October 2026, according to the delivery team's project records. Monitoring and ongoing improvements continue after deployment.

✦ Architecture

Conceptual diagram

Loading diagram…

Simplified from the technical team's architecture. Onboarding is shown as an input to the canonical layer; system-specific bidirectional flows depend on each integration contract.

Drag to pan · Ctrl/⌘ + scroll or pinch to zoom · click a block to trace its connections

✦ Technology

The stack, and why

  • Oracle HCMHR system of record for employees and movements.
  • TOTVS RMPayroll and leave.
  • SydleEmployee onboarding workflows.
  • Apache KafkaAsynchronous, durable event backbone.

Hover or tap a technology to see why it is there.

All key engineering decisions
Technology / patternWhy it matters
Canonical Employee Data ModelStandardises employee information and defines ownership of individual attributes, reducing conflicting updates
Kafka + Outbox/InboxSupports asynchronous communication and durable event processing, including recovery from delivery failures
Dedicated Integration AdaptersIsolates application-specific logic and allows integrations to be deployed and scaled independently
Idempotent ProcessingPrevents duplicate events from causing repeated business operations during retries
Validation Before PropagationStops invalid records from spreading between connected applications
Integration Monitoring DashboardGives HR teams understandable error messages, processing status and employee-level record comparisons

✦ Technical highlight

Reliability by design

The most important decision was to treat data consistency and failure recovery as core requirements, rather than relying only on faster data transfer.

Processing is at-least-once, combined with idempotency and deduplication, so transient failures are retried without repeating business operations. Events are ordered per employee while unrelated records are handled in parallel.

  1. Don't lose itOutbox / Inbox keeps events safe between database update and publication.
  2. Don't repeat itIdempotent processing makes retries harmless.
  3. Don't spread itOwnership and validation stop bad data at the door.
  4. Show itA monitoring view HR can read and act on.

The implementation also includes structured logging, health checks, authenticated HTTPS communication and centrally managed secrets.

✦ Evidence

The numbers

Where the seconds goModelled scenario

Illustrative midpoints of per-stage budgets: capture 1–2 s, validation 0.5–1 s, write 0.2–0.5 s, propagation 1–5 s (median budget about 3–8 s). Acceptance criterion P95 ≤ 30 s. Not a production measurement.

Manual corrections per month, by causeModelled scenario

Scenario on a hypothetical baseline of 120 corrections a month. Retries remove transient failures, validation removes invalid source data; human decisions remain. The actual reduction has not yet been quantified.

What 99% means in practiceModelled scenario
Changes in a month5,00020,000100,000
Failures tolerated at 99%502001,000

Arithmetic from the definition of 99%: eligible changes successfully applied, including those recovered by automatic retries; changes needing manual intervention or rejected by data-quality rules count as failures.

✦ Results & impact

What we can say, and what we can't yet

The delivery team reports that the core integration entered production in October 2026 and that the legacy batch process was retired.

MetricResultEvidence
Enterprise applications integrated3Delivered
Shared canonical employee data layer1Delivered
Processing reliability99%Team-reported
SynchronisationSeconds rather than hours or daysTeam-reported
Legacy batch dependencyRetiredDelivered
Production go-liveOctober 2026Delivered

The 99% refers to eligible changes successfully applied, including those recovered through automatic retries. It is reported by the engineering team; the measurement window and production event counts still require confirmation. The reduction in support effort and operational cost has not yet been quantified.

✦ What this project demonstrates

Principles that travel

Complex enterprise integrations can be modernised without replacing the applications a business already depends on. The value is not only moving data faster, but clear data ownership, designed-in failure recovery and integration behaviour that operational teams can see.

The same principles apply to CRM–ERP synchronisation, financial system integrations and employee lifecycle workflows.

  • Name an owner for every attribute
  • Design for failure, then for speed
  • Make integration visible to the people who use the data
  • Run old and new in parallel, then retire the old
How to read the badgesDeliveredTeam-reportedDocumented designMeasured · acceptance testModelled scenarioIn delivery

✦ Your turn

Still waiting for the overnight batch?

Let us make tomorrow morning happen in seconds. Tell us which two systems keep disagreeing and we will tell you who should own the truth.

Next case studyA reusable, event-driven integration architecture around a canonical data contract→