Where reuse ends and business meaning begins

A shared integration platform can handle repeatable mechanics, but each customer still owns the meaning of its records and actions. Draw that boundary.

integration platform reuse

What's the short answer?

Reuse authentication, transport, retries, observation and failure handling where their contracts truly match. Keep local business meaning, source-of-truth choices, consent and action policy explicit with the workflow owner. A platform may share much of the plumbing without making every customer’s data semantics interchangeable.

Learn more
On This Page

Two customers both have a field called “active.” For one, it means the customer bought something in the past year. For another, it means a service agreement is current. A shared connector can move both fields correctly. A shared rule that treats them as the same business state can be wrong for one of them. This is an illustrative example, not a report from a deployment.

A discussion of shared platforms and local deployment describes a company reusing much of its infrastructure while still doing substantial work inside each customer environment. Its percentages are company-specific. The general architectural question is where shared mechanics stop and local meaning begins.

Separate the transport contract from the business contract

A transport contract can state: authenticate to the source, read changed records, preserve identifiers, retry safely and expose failures. Those behaviors can be implemented once and tested repeatedly. They are valuable because every integration needs a trustworthy route for data.

A business contract says which record is authoritative, what a status means, when an action is allowed and who can correct a mistake.

  1. Shared transport identity · retry · event ID

    delivers a valid event

  2. Local policy meaning · consent · timing

    decides whether action is allowed

  3. Authorized action write · audit

    records the outcome

Shared mechanics hand off to local meaning The shared transport delivers a validated event, local policy interprets it, and an authorized action follows only after both contracts hold.

That business contract depends on the workflow. It might use the same source and destination as another customer yet require a different answer.

Consider a store-to-email connection. The platform can provide event ingestion, deduplication and an audit trail. The workflow owner must define whether “subscribed” means permission for a particular marketing purpose, whether a purchase suppresses a cart reminder, and how a consent change affects messages already queued. These are not connector features that can be guessed from field names.

The illustrated Tajo map below copies three fields directly. Notice the missing decision: none of those rows defines marketing permission. Reusing transport saves work, but the workflow owner still has to specify which status permits which action. A neat field map can expose that gap without resolving it.

TajoConcept illustration · Example data

Review a sync before it runs

Sync customer updates to my email platform.

Tajo MCP appDraft

Customer sync

StoreEmail platform
Field mapping
Source fieldDestination fieldRule
emailEMAILDirect
first_nameFIRSTNAMEDirect
last_nameLASTNAMEDirect

Synthetic preview passed

3 fields mapped · No destination writes

Illustrative layout based on Tajo's mapping tools. A synthetic preview and a saved draft do not activate a sync.

These fields can be copied mechanically. Their later use still depends on an explicit business rule.
Shared layerLocal layer
Authentication and token refreshWhich principal may access this workflow
Event transport and retriesWhich event counts as the business transition
Stable identifiers and deduplicationWhich records refer to the same real customer
Logging and recovery hooksWho resolves a disputed state and how
Contract validationWhat the field values mean and when they may drive action

The table is a design boundary, not a claim that all implementations can be partitioned this neatly.

Reuse breaks when it hides disagreement

A generic platform often grows a configuration field for every exception. At first, this seems to preserve reuse. Later, nobody can tell whether a setting is a technical option, a legal constraint or a business decision. The shared core becomes a remote control for choices it does not own.

Look for a stable invariant. “Never apply the same source event twice to the same destination record” can live in a shared engine. “Send a discount when a customer becomes active” cannot be shared until “active,” the allowed audience and the offer policy have owners. The engine can execute an approved policy, but it should not invent one.

This also helps maintenance. If an API changes, the platform team can update the adapter and its tests. If the definition of an eligible customer changes, the business owner can update the policy and test examples without waiting for a transport rewrite. A clean boundary lets each change reach the person who has authority over it.

Reuse mechanics without flattening meaning

Some local rules do add cost. A platform with no reusable contract becomes a collection of bespoke scripts. The answer is to identify repeated mechanisms before abstracting repeated meanings. A well-designed shared primitive might accept a typed predicate, event time and action limit while leaving the predicate’s business definition local.

The boundary should be tested with real cases. Take a normal event, a duplicate, a late correction and a revoked permission. Ask which layer is responsible for each response. If a failure cannot be assigned, the abstraction is hiding ownership. If a new customer forces a shared “active” enum to acquire several unrelated interpretations, the shared type is too broad.

The companion deployment article examines whether a capability works inside a live workflow. This one asks what can be built once without erasing what the workflow means.

The interface between layers should be explicit enough to reject a bad assumption. A shared engine can require an event ID, source time, actor and declared purpose before accepting an action request. The local workflow can supply the policy that decides whether that action is allowed. If the purpose is absent, the engine should refuse the request; if the policy is ambiguous, the local owner must resolve it. This is a practical way to preserve reuse without outsourcing business authority to generic code. Document the contract with one accepted example and one rejected example, then test both whenever either layer changes.

A reusable connector should make local meaning easier to express and safer to execute. It should never make two different promises look identical because their fields share a name.

Frequently Asked Questions

What should an integration platform usually reuse?

Stable mechanics such as authentication patterns, transport, idempotency, retries, logging and contract checks can often be shared when the underlying requirements match.

What should remain specific to a business?

The meaning of fields, source authority, consent rules, timing requirements and who may act on a status must be established for that business and workflow.

How can teams test the boundary?

Try to express a new workflow using existing primitives. If doing so changes the business meaning or hides exceptions in generic configuration, keep that logic local and make the interface explicit.

Request early access

Enter your first name and business email address. We will email you a link to confirm your request for Tajo access.

Get Brevo