Most server-side tracking tools either (a) process everything in us-east-1 or (b) require separate deployments per region. TrackLayer routes per merchant at the queue layer — one account, regional isolation.
Client-side pixels defer to browser jurisdiction.When a user in Frankfurt clicks a Meta ad, the pixel fires from their local browser. Meta receives the event via its EU edge. The EU merchant doesn't need to think about residency — the browser handled it.
Server-side tracking changes that. Events now flow through your infrastructure before reaching the platform. If your queue is in us-east-1, you've just created a GDPR Article 45 transfer without an adequacy decision.
Enterprise procurement checks flow diagrams.Security teams scan architecture docs for data crossing borders. 'Does this SaaS process EU PII in the EU?' is a standard questionnaire line item.
When the answer is 'no', the deal stalls. The fix isn't explaining the adequacy decision. The fix is offering regional processing as a first-class feature.
queue_id | region | merchant_count | last_processed | events_backlogged --------------------------+-----------+----------------+----------------+------------------ tracklayer-events-eu | eu-west-1 | 12,847 | 14:02:11 UTC | 0 tracklayer-events-us | us-east-1 | 8,432 | 14:02:08 UTC | 0 tracklayer-delivery-eu | eu-west-1 | 12,847 | 14:02:10 UTC | 142 tracklayer-delivery-us | us-east-1 | 8,432 | 14:02:07 UTC | 89
// Consumer worker region check (Phase 6.6)
async function validateRegion(event: Event): Promise<ValidatedEvent | null> {
const merchant = await getMerchant(event.merchant_id);
const queueRegion = await getQueueRegion(event.queue_id);
// Drop cross-region events before platform send
if (merchant.residency_region !== queueRegion) {
await logDrop({
event_id: event.event_id,
reason: 'cross_region_enforcement',
merchant_region: merchant.residency_region,
queue_region: queueRegion,
});
return null; // Drop without sending to platform
}
return { ...event, validated_region: queueRegion };
}This enforcement happens after queue polling but before any platform API call. Even if a misconfiguration routes an EU merchant's event to a US worker, the platform never receives the event outside its compliance boundary.
tracklayer-events-eu / tracklayer-events-us with worker colocation.
Consumer enforces region before any platform API call.
Ingest routes to regional queue based on merchant config.
Meta CAPI EU endpoint used for EU merchants.
We use essential cookies to keep the site secure and functional. Analytics and third-party tags run only with your consent. See our Cookie Policy.
We use essential cookies to keep the site secure and functional. Analytics and third-party tags run only with your consent. See our Cookie Policy.