Zum Inhalt springen

Integration und Datenbewegung

Auch in 19 Sprachen

English · Español · 日本語 · Português (Brasil) · Français · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Українська · Español (México) · Français (Canada) · Deutsch (Schweiz)

An open sketchbook on a drafting table at dawn, a building sketched on one page and a data model on the other, with a pencil, an eraser, a cup and a lamp.
Mit KI erstelltes Bild

Lernleitfaden zu Kapitel 9 des Kurses Data Architect. Lesen Sie zuerst die vier Module; diese Seite hilft Ihnen zu prüfen, was hängen geblieben ist.

Über diesen Lernleitfaden. Er beruht ausschließlich auf den Inhalten dieses Kurses und der veröffentlichten Liste der Prüfungsziele im Prüfungsleitfaden von Salesforce. Er basiert niemals auf echten Prüfungsfragen und behauptet nicht zu wissen, was in der Prüfung vorkommt. Wenn Sie die Prüfung abgelegt haben, schicken Sie mir bitte keine Fragen daraus: Die Zertifizierungsvereinbarung verbietet es, sie weiterzugeben, und Antworten auswendig zu lernen ist ohnehin der falsche Weg in die Architektur.

Laut Prüfungsleitfaden wird die Konfiguration von Integrationswerkzeugen nicht geprüft, und dieses Kapitel ist ein Probierteller für die Datenarchitektur, nicht der Kurs Integration Architect. Was die Prüfung interessiert, ist, was Integrationen mit Ihren Daten tun: Schlüssel, Schreibautorität, Volumen und Vollständigkeit, und Daten, die sich zwischen Orgs bewegen. Plattformzahlen ändern sich, also prüfen Sie die aktuellen, bevor Sie sich darauf verlassen.

Haken Sie die Punkte ab. Jeder verweist auf die Stelle, an der er behandelt wird.

Vor dem Pfeil (stützt LDV-1 und SDM-2)

  • I zoom out to the landscape, then zoom in on one arrow and ask its data questions: initiator, direction, freshness, volume and shape, key, write authority, and who proves it arrived. (Zoom In on One Arrow) ⟲
  • Ich trenne wer auslöst von in welche Richtung die Daten fließen, und ich weiß, dass nur der Client den ganzen Hin- und Rückweg sieht. (Wer anfängt, ist nicht die Richtung der Daten)
  • I treat freshness as a requirement, not a default, and match the timing to the mechanism: a synchronous call when the caller waits, platform events for fire and forget, Change Data Capture to keep another system in step, the Bulk API for large scheduled loads. (How Current Does It Need to Be?) ⟲
  • I know a database stores; a process calls: polling needs a process, often middleware, and polling for nothing is waste. Change Data Capture has a daily delivery allocation, counted per subscriber. (Asking Every Minute) ⟲
  • I know Salesforce’s guidance for pulling changes on a schedule: getUpdated() and getDeleted() for intervals over 5 minutes; more often than that, let Salesforce send the change. (Asking Every Minute) ⟲
  • I know the three traffic shapes, singles, sets and bulk; that more than 2,000 records is a good candidate for Bulk API 2.0, fewer for bulkified synchronous calls such as Composite; and to send only the fields that changed. (The Number of Zeros Applies to Integrations Too) ⟲
  • I know integration volume becomes data volume: ownership, automation, sharing and storage. (Integration Volume Becomes Data Volume) ⟲

Schlüssel und Schreibautorität (stützt SDM-2, SDM-4 und MDM-2)

  • I carry an external system’s key in an External ID field marked Unique, one-to-one, and upsert on it: no match creates, one match updates, more than one fails. (One Record, One Key) ⟲
  • When one customer has several external records, I add records, not fields (a hierarchy, peers or a child object), never a key field per ERP. (When the Customer Is in Two ERPs, chapter 6: One Customer, Two ERPs) ⟲
  • I know one key field with the source in the value is still one key per record, and a new partner is a new value, not a new field. (Steve Trucking: One Field, the Source in the Value) ⟲
  • Ich weiß, dass stabile Schlüssel Wiederholungen sicher machen (der Anfang von Idempotenz). (Schlüssel machen Wiederholungen sicher)
  • I know a key isn’t authority, and enforce write authority in the org: record types, read-only fields for users, and an integration user with only the access its contract needs. (A Key Isn’t Authority) ⟲
  • I know two-way movement still has one owner per field, and how unclear authority causes loops. (Two-Way Movement, One Owner per Field) ⟲
  • Ich weiß, dass eine Datensatz-ID aus einer Salesforce-Org in einer anderen kein Unternehmensschlüssel ist: Zwei Orgs sind zwei Systeme. (Auch Schlüssel haben Lebenszyklen)

Proof of delivery (supports MIG-1 and MIG-2) ⟲

Der Integrations-Datenvertrag (stützt SDM-4)

  • I can write an integration data contract for an arrow, eleven lines: initiator, direction, freshness, volume and shape, key, write authority, pattern, mechanism, proof of delivery, sensitivity and travel, and change. (An Arrow Needs More Than a Label) ⟲
  • I go requirement, then pattern, then mechanism. (Requirements, Then Pattern, Then Mechanism) ⟲
  • I know when to give another team a custom Apex REST endpoint instead of the standard APIs (one stable interface, my own logging and orchestration) and what it costs (code to maintain; API and Apex limits still apply). (A Contract Between Teams) ⟲
  • I count every place the data rests on its way, logs and retry queues included, when it has to stay in a country. (Make Each Line Specific) ⟲
  • For multiple orgs, I start with a contract per movement, and sometimes the contract says don’t move it (chapter 14). (Multiple Orgs, and “Don’t Move It”) ⟲

Where the rest lives. This chapter is about moving data. Not moving it (Salesforce Connect, mashups, data brought in on demand, zero copy: exam objective LDV-3) is chapter 14, Virtualization, Federation, and Zero-Copy (coming soon). Loading and extracting at volume is chapter 10, Migration and Synchronization. ⟲

Die Prüfung ist der Boden, nicht die Decke. Das sind die Gewohnheiten aus diesem Kapitel, die Architekt:innen brauchen, ob eine Frage je danach fragt oder nicht.

  • Zoom out, then zoom in. Start with the landscape; then take one arrow at a time. ⟲
  • Verstehen Sie den Verkehr, der kommt, auch wenn jemand anderes die Integration entwirft.
  • Wählen Sie den Mechanismus, nachdem Sie die Bewegung verstanden haben.
  • A database stores; a process calls. Someone has to own the process. ⟲
  • Datenbewegung ist nicht kostenlos. Jede Kopie ist ein weiterer Ort, der gesteuert werden muss.
  • Add records, not fields. ⟲
  • Kennen Sie den Datensatz. Kennen Sie den Eigentümer. Dann lassen Sie die Integration schreiben.
  • Whoever knows what should arrive proves that it did. ⟲
  • Wenn es still scheitern kann, ist es nicht fertig. Eine gestoppte Integration ist ein Datenqualitätsproblem.
  • Berechtigung sagt „kann“; Architektur sagt „sollte“.
  • Decide the interface between teams in the first weeks: the standard API or a wrapper you own. ⟲
  • Der Vertrag überdauert die Technologie.
  • Behandeln Sie jede Aktion eines Agenten als Integration, mit Schlüsseln, Autorität, Idempotenz und Beobachtbarkeit.
BegriffIn einer Zeile
AuslöserDas System, das das Gespräch beginnt (der Client)
DatenrichtungIn welche Richtung sich die Geschäftsdaten bewegen, egal wer beginnt
FreshnessHow current the data must be
PollingAsking on a schedule whether anything changed
Einzeln, in Sätzen, in MasseEin Datensatz nach dem anderen, kleine Gruppen oder große Volumen in einem Job
Externe IDDer Schlüssel eines anderen Systems, am Salesforce-Datensatz gespeichert, für den Abgleich genutzt
UpsertDen passenden Datensatz aktualisieren, falls er existiert, sonst anlegen
IdempotenzEine Operation wiederholen, ohne unbeabsichtigte zusätzliche Wirkungen
Wasserzeichen / PrüfpunktDie Aufzeichnung, wie weit eine Integration sicher gekommen ist
AbgleichVergleichen, was geplant war, mit dem, was angekommen ist
Proof of deliveryEvidence, held by the side that knows what should arrive, that it did
Return receiptAn acknowledgment sent back to say a message was received and processed
Request and replyThe client sends and waits for the answer
Fire and forgetThe client sends without waiting for the outcome
PlattformereignisEine Nachricht, die auf dem Ereignisbus von Salesforce für Abonnenten veröffentlicht wird
Change Data CaptureEreignisse, die Salesforce veröffentlicht, wenn sich Datensätze ändern
Replay IDDie Position, an der ein Abonnent das Lesen von Ereignissen fortsetzt
Custom Apex RESTYour own REST endpoint in Salesforce, written in Apex, in front of your objects
Integrations-DatenvertragEine kurze Aufzeichnung dessen, was eine Integration mit den Daten tun darf

Kurze Szenarien im Stil des Kurses. Entscheiden Sie sich für Ihre Antwort, bevor Sie sie aufklappen.

1. Salesforce ruft das ERP auf, um den Kreditstatus eines Kunden zu holen. In welche Richtung fließen die Daten, und wer löst aus?

Salesforce löst aus; die Daten fließen ERP → Salesforce. Auslöser und Richtung sind getrennte Fragen, und der Auslöser (der Client) ist derjenige, der den ganzen Hin- und Rückweg sieht. Lesen Sie noch einmal Wer anfängt, ist nicht die Richtung der Daten.

2. Das Team schlägt vor, für jede GPS-Meldung einen Salesforce-Datensatz anzulegen: 200.000 am Tag. Was fragen Sie zuerst?

Warum 73 Millionen Meldungen pro Jahr ins transaktionale Modell legen? Das ist eine Entscheidung der Datenarchitektur, bevor es eine der Integration ist; die Org braucht vielleicht nur die letzte Position. Lesen Sie noch einmal Integrationsvolumen wird zu Datenvolumen.

3. A warehouse team says, "Snowflake will just poll Salesforce every minute." What's missing? ⟲

A database stores; a process calls. Something has to run the polling (usually an integration layer), with its own credentials, schedule and failures, and 1,440 calls a day mostly find nothing. Ask how current the data must be, then consider letting Salesforce send the changes (Change Data Capture), and count the events. Reread Asking Every Minute.

⟲
4. An external system needs Salesforce's changes about every hour, including deletions. What does Salesforce's own guidance suggest? ⟲

For intervals over 5 minutes, the SOAP API’s getUpdated() and getDeleted() return what changed and what was deleted in a window, instead of a full extract. More often than that, let Salesforce send the change. Reread Asking Every Minute.

⟲
5. The ERP retries a "create customer" call after a timeout and Salesforce ends up with two accounts. How should it have been designed? ⟲

Upsert on the ERP’s customer number in an External ID field marked unique, so a retry matches the existing record instead of inserting a duplicate. Reread Keys Make Retries Safe.

⟲
6. The customer exists in two ERPs, and someone proposes `NA_ERP_ID__c` and `EMEA_ERP_ID__c` on the Account. Your view? ⟲

That’s a key field per ERP: an anti-pattern. It hides repeating structure in fields and turns every new ERP into a schema change. Add records, not fields: child accounts, peer accounts, or a child object per ERP record, each with one key. Reread When the Customer Is in Two ERPs.

⟲
7. The integration log shows zero errors, but finance totals don't match. What happened, and who should have caught it? ⟲

Zero errors isn’t completeness: maybe fewer records were sent than intended, or values changed in transit. The side that knows what should have arrived proves it did: it reconciles counts and control totals against what it meant to send. Reread Who Proves It Arrived?.

⟲
8. A subscriber to platform events was down for a day. Can it catch up? ⟲

Yes, within the 72-hour retention: it resumes from its last Replay ID. It must also handle duplicates, because the same event can arrive twice. Reread The Return Receipt.

⟲
9. The requirement says "we need a REST integration for credit holds." What's wrong with that? ⟲

REST is a mechanism, not a requirement. The requirement is something like “agents see a credit hold within five minutes of the ERP change.” Start there, choose the pattern, then the mechanism, and write the contract. Reread Requirements, Then Pattern, Then Mechanism.

⟲
10. A partner's middleware team will send orders that touch four objects, and your data model changes every release. Standard API or custom Apex REST? ⟲

It depends on the team. If they know Salesforce deeply and can change quickly, the standard APIs work. If not, a custom Apex REST endpoint gives them one stable interface, lets Salesforce orchestrate the four writes and log every call, and absorbs your changes inside. The cost is code you maintain, inside Salesforce’s API and Apex limits. Decide in the first weeks. Reread A Contract Between Teams.

⟲