Gå til innholdet

Tegn systemlandskapet

Finnes også på 28 språk

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

A hand-drawn map of a region in ink and watercolor, half finished: towns, roads, a river and a rail line on one side, faint pencil lines on bare paper on the other.
Bildet er laget med KI

Modul 4 av 6 i kapitlet Forstå virksomhetens data, kapittel 4 i kurset Data Architect. Hver modul står på egne ben. Forrige: Systemene rundt Salesforce · Neste: Org-strategi er en landskapsbeslutning

Spørsmålet denne modulen besvarer: Hvordan tegner jeg et landskap som viser hvor dataene går?

Gi meg et nytt scenario og en blank tavle, og noe av det første jeg tegner, er systemlandskapet. Ikke vakkert, ikke hvert API, ikke datamodellen ennå. Jeg vil se virksomheten: hvem brukerne er, hvilke systemer som er involvert, hvor Salesforce står, hva som omgir det, hvor data kommer fra og hvor de går. Og så vil jeg gå gjennom pilene. Et godt landskap er ikke et bilde av bokser. Det er en måte å avdekke arkitektoniske beslutninger på.

Jeg får CTA-kandidater til å øve på dette. Les scenarioet, og begynn så å tegne. Ikke vent til du har løst alt i hodet; tegningen hjelper deg å løse det. Derfor er hjemmeleksen etter første dag å starte landskapet før du gjør et forsøk på datamodellen. Tegner du datamodellen først, har du allerede antatt hva som hører hjemme i Salesforce. Tegner du landskapet først, kan du se systemene som bør forme den beslutningen.

Start høyt, og bor deg så ned: hele virksomheten først, så detaljene der de betyr noe.

Steves landskapsoppsett Steves oppsett for systemlandskapet, ennå uten piler. Til venstre, ovenfra og ned: interne brukere, partnerbrukere og kunder. I midten Salesforce i blått med en sky, orgen vi designer rundt, med partnercommunityen og kundecommunityen under, i kontakt med den. Over: et offentlig nettsted øverst til venstre, de ansattes identitetsleverandør og partnernes identitetsleverandør over Salesforce, og en AppExchange-app for e-signatur skjøvet til høyre. Til høyre for Salesforce integrasjonslaget, med Data 360 under i samme kolonne (nær core: styres på core, driftes utenfor core; brukere kobler seg aldri til det, og det når mange backend-systemer), deretter de interne systemene: ERP, økonomi, ordrehåndtering og datavarehuset. Under: kundekanalene, e-post, nettskjemaer, telefon og meldinger. Nederst til høyre data inn og ut: et arkiv, datalastinger og eksterne data som refereres i stedet for å kopieres. Seks trinnbilder bygger det opp: de tomme sonene, så menneskene, Salesforce og communityene, identitet over, integrasjon og de interne systemene, og til slutt kanalene og dataene. OVER: IDENTITET, APPEXCHANGE, NETT MENNESKER TIL HØYRE: INTERNE SYSTEMER UNDER: KUNDEKANALER NEDERST TIL HØYRE: DATA INN OG UT © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Steg 1 av 6: et blankt lerret. Bare sonene.

Det finnes mange måter å tegne et systemlandskap på. Dette er bare min måte, en jeg har finpusset gjennom mange år, og jeg deler den så du kan se hvordan du raskt setter et sammen. Jeg bruker den for hvert Salesforce-landskap, og den leses som en setning: menneskene til venstre når Salesforce i midten, får tillit gjennom systemene over den, blir betjent gjennom kanalene under den, og er koblet til bakkontoret til høyre.

Menneskene til venstre, ovenfra og ned: interne brukere, partnere, kunder. Ikke hver persona ennå; nok til å svare på hvem prøver å nå denne arkitekturen? Hver gruppe peker dit den kommer inn: interne brukere til Salesforce, partnere til partnercommunityet, kunder til kundecommunityet. Systemer finnes ikke for seg selv. Noen, eller noe, prøver å bruke dem.

Steves landskapsoppsett Steves oppsett for systemlandskapet, ennå uten piler. Til venstre, ovenfra og ned: interne brukere, partnerbrukere og kunder. I midten Salesforce i blått med en sky, orgen vi designer rundt, med partnercommunityen og kundecommunityen under, i kontakt med den. Over: et offentlig nettsted øverst til venstre, de ansattes identitetsleverandør og partnernes identitetsleverandør over Salesforce, og en AppExchange-app for e-signatur skjøvet til høyre. Til høyre for Salesforce integrasjonslaget, med Data 360 under i samme kolonne (nær core: styres på core, driftes utenfor core; brukere kobler seg aldri til det, og det når mange backend-systemer), deretter de interne systemene: ERP, økonomi, ordrehåndtering og datavarehuset. Under: kundekanalene, e-post, nettskjemaer, telefon og meldinger. Nederst til høyre data inn og ut: et arkiv, datalastinger og eksterne data som refereres i stedet for å kopieres. Seks trinnbilder bygger det opp: de tomme sonene, så menneskene, Salesforce og communityene, identitet over, integrasjon og de interne systemene, og til slutt kanalene og dataene. OVER: IDENTITET, APPEXCHANGE, NETT MENNESKER TIL HØYRE: INTERNE SYSTEMER UNDER: KUNDEKANALER NEDERST TIL HØYRE: DATA INN OG UT Interne brukere salg, service, drift Partnerbrukere Kunder mennesker © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Steg 2 av 6: hvem prøver å nå denne arkitekturen?

Salesforce i midten. Én enkel boks. Ikke fordi Salesforce er midten av virksomheten (vi har nettopp brukt tre moduler på å si at det ikke er det), men fordi det er systemet jeg designer rundt. Det er ankeret.

Communityene rett under, inntil den. Et partnercommunity og et kundecommunity er separate endepunkter, så de får egne bokser. Men de står inntil Salesforce, fordi ingenting må integreres for å nå dem: de kjører i samme org.

Steves landskapsoppsett Steves oppsett for systemlandskapet, ennå uten piler. Til venstre, ovenfra og ned: interne brukere, partnerbrukere og kunder. I midten Salesforce i blått med en sky, orgen vi designer rundt, med partnercommunityen og kundecommunityen under, i kontakt med den. Over: et offentlig nettsted øverst til venstre, de ansattes identitetsleverandør og partnernes identitetsleverandør over Salesforce, og en AppExchange-app for e-signatur skjøvet til høyre. Til høyre for Salesforce integrasjonslaget, med Data 360 under i samme kolonne (nær core: styres på core, driftes utenfor core; brukere kobler seg aldri til det, og det når mange backend-systemer), deretter de interne systemene: ERP, økonomi, ordrehåndtering og datavarehuset. Under: kundekanalene, e-post, nettskjemaer, telefon og meldinger. Nederst til høyre data inn og ut: et arkiv, datalastinger og eksterne data som refereres i stedet for å kopieres. Seks trinnbilder bygger det opp: de tomme sonene, så menneskene, Salesforce og communityene, identitet over, integrasjon og de interne systemene, og til slutt kanalene og dataene. OVER: IDENTITET, APPEXCHANGE, NETT MENNESKER TIL HØYRE: INTERNE SYSTEMER UNDER: KUNDEKANALER NEDERST TIL HØYRE: DATA INN OG UT Interne brukere salg, service, drift Partnerbrukere Kunder Partnercommunity Kundecommunity Salesforce orgen vi designer rundt Salesforce en community mennesker © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Steg 3 av 6: Salesforce i midten, communityene rett under.

Identitet over. Identitetsleverandørene står øverst, de utviklere glemmer: én for interne brukere, kanskje en annen for partnere. AppExchange-pakker står også der oppe, skjøvet til høyre, fordi de er funksjoner som hentes inn i orgen, ikke bakkontorsystemer som utveksler data med den. Offentlige nettsteder står øverst til venstre.

Steves landskapsoppsett Steves oppsett for systemlandskapet, ennå uten piler. Til venstre, ovenfra og ned: interne brukere, partnerbrukere og kunder. I midten Salesforce i blått med en sky, orgen vi designer rundt, med partnercommunityen og kundecommunityen under, i kontakt med den. Over: et offentlig nettsted øverst til venstre, de ansattes identitetsleverandør og partnernes identitetsleverandør over Salesforce, og en AppExchange-app for e-signatur skjøvet til høyre. Til høyre for Salesforce integrasjonslaget, med Data 360 under i samme kolonne (nær core: styres på core, driftes utenfor core; brukere kobler seg aldri til det, og det når mange backend-systemer), deretter de interne systemene: ERP, økonomi, ordrehåndtering og datavarehuset. Under: kundekanalene, e-post, nettskjemaer, telefon og meldinger. Nederst til høyre data inn og ut: et arkiv, datalastinger og eksterne data som refereres i stedet for å kopieres. Seks trinnbilder bygger det opp: de tomme sonene, så menneskene, Salesforce og communityene, identitet over, integrasjon og de interne systemene, og til slutt kanalene og dataene. OVER: IDENTITET, APPEXCHANGE, NETT MENNESKER TIL HØYRE: INTERNE SYSTEMER UNDER: KUNDEKANALER NEDERST TIL HØYRE: DATA INN OG UT Interne brukere salg, service, drift Partnerbrukere Kunder Offentlig nettsted De ansattes IdP enkel pålogging Partnernes IdP enkel pålogging AppExchange-app e-signatur Partnercommunity Kundecommunity Salesforce orgen vi designer rundt Salesforce en community mennesker identitet, apper, nett © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Steg 4 av 6: identitet over, boksen utviklere glemmer.

Integrasjon, så bakkontoret, til høyre. Integrasjonslaget, en ESB eller iPaaS (eller MuleSoft, når det er navngitt), er en høy søyle rett til høyre for Salesforce. De interne systemene står bak den: ERP-ene, økonomi, ordrehåndtering, eldre systemer, datavarehuset. Nå leses siden fra venstre mot høyre: mennesker, Salesforce, integrasjon, bakkontor.

Steves landskapsoppsett Steves oppsett for systemlandskapet, ennå uten piler. Til venstre, ovenfra og ned: interne brukere, partnerbrukere og kunder. I midten Salesforce i blått med en sky, orgen vi designer rundt, med partnercommunityen og kundecommunityen under, i kontakt med den. Over: et offentlig nettsted øverst til venstre, de ansattes identitetsleverandør og partnernes identitetsleverandør over Salesforce, og en AppExchange-app for e-signatur skjøvet til høyre. Til høyre for Salesforce integrasjonslaget, med Data 360 under i samme kolonne (nær core: styres på core, driftes utenfor core; brukere kobler seg aldri til det, og det når mange backend-systemer), deretter de interne systemene: ERP, økonomi, ordrehåndtering og datavarehuset. Under: kundekanalene, e-post, nettskjemaer, telefon og meldinger. Nederst til høyre data inn og ut: et arkiv, datalastinger og eksterne data som refereres i stedet for å kopieres. Seks trinnbilder bygger det opp: de tomme sonene, så menneskene, Salesforce og communityene, identitet over, integrasjon og de interne systemene, og til slutt kanalene og dataene. OVER: IDENTITET, APPEXCHANGE, NETT MENNESKER TIL HØYRE: INTERNE SYSTEMER UNDER: KUNDEKANALER NEDERST TIL HØYRE: DATA INN OG UT Interne brukere salg, service, drift Partnerbrukere Kunder Offentlig nettsted De ansattes IdP enkel pålogging Partnernes IdP enkel pålogging AppExchange-app e-signatur Partnercommunity Kundecommunity INTEGRASJONSLAG (ESB) ERP ordrer, fakturaer Økonomi betalinger Ordrehåndtering Datavarehus analyse Salesforce orgen vi designer rundt Salesforce en community mennesker identitet, apper, nett et internt system integrasjonslaget © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Steg 5 av 6: integrasjon, så bakkontoret.

Kanaler under. Alt som har en direkte linje til kundene: email-to-case, web-to-lead, telefon, meldinger.

Data inn og ut, nederst til høyre. Eksterne datakilder, arkiver, datainnlastinger.

Data 360 til høyre, under integrasjonslaget. Brukerne kobler seg aldri til den, og tenanten kobler seg til mange bakenforliggende systemer, så den står sammen med rørleggerarbeidet, der de linjene holder seg korte: ved siden av de interne systemene, datavarehuset og dataene nederst til høyre. Datateam åpner riktignok skjermene, men de skjermene er i orgen: Data 360 er nær core (near-core), administrert på core og driftet utenfor core (modul 1). Én linje tilbake til Salesforce viser hvem som administrerer den. Hvor du plasserer boksen, bør fortelle historien om hva den gjør.

Ingenting av denne geometrien er hellig. Verdien av en konvensjon er at jeg ikke finner opp det visuelle språket på nytt hver gang, og at alle som har sett ett av diagrammene mine, kan lese det neste raskere.

Steves landskapsoppsett Steves oppsett for systemlandskapet, ennå uten piler. Til venstre, ovenfra og ned: interne brukere, partnerbrukere og kunder. I midten Salesforce i blått med en sky, orgen vi designer rundt, med partnercommunityen og kundecommunityen under, i kontakt med den. Over: et offentlig nettsted øverst til venstre, de ansattes identitetsleverandør og partnernes identitetsleverandør over Salesforce, og en AppExchange-app for e-signatur skjøvet til høyre. Til høyre for Salesforce integrasjonslaget, med Data 360 under i samme kolonne (nær core: styres på core, driftes utenfor core; brukere kobler seg aldri til det, og det når mange backend-systemer), deretter de interne systemene: ERP, økonomi, ordrehåndtering og datavarehuset. Under: kundekanalene, e-post, nettskjemaer, telefon og meldinger. Nederst til høyre data inn og ut: et arkiv, datalastinger og eksterne data som refereres i stedet for å kopieres. Seks trinnbilder bygger det opp: de tomme sonene, så menneskene, Salesforce og communityene, identitet over, integrasjon og de interne systemene, og til slutt kanalene og dataene. OVER: IDENTITET, APPEXCHANGE, NETT MENNESKER TIL HØYRE: INTERNE SYSTEMER UNDER: KUNDEKANALER NEDERST TIL HØYRE: DATA INN OG UT Interne brukere salg, service, drift Partnerbrukere Kunder Offentlig nettsted De ansattes IdP enkel pålogging Partnernes IdP enkel pålogging AppExchange-app e-signatur Partnercommunity Kundecommunity Data 360 nær core: styres på core, driftes utenfor core INTEGRASJONSLAG (ESB) ERP ordrer, fakturaer Økonomi betalinger Ordrehåndtering Datavarehus analyse E-post e-post til sak Nettskjemaer nett til kundeemne Telefon kundesenter Meldinger SMS, chat Arkiv gamle saker Datalastinger migrering Eksterne data refereres, kopieres ikke Salesforce orgen vi designer rundt Salesforce en community mennesker identitet, apper, nett et internt system en kundekanal data inn og ut integrasjonslaget stiplet: ikke i drift ennå, eller referert © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Steg 6 av 6: hele oppsettet, ennå uten piler. Hvert senere landskap beholder disse posisjonene.

Hold notasjonen enkel. Hvert system er et kort: navnet, rollen og et lite ikon som sier hva slags ting det er: et ERP, en database, en identitetsleverandør, en gruppe mennesker. Områdene jeg nettopp beskrev, tegnes som svake, merkede soner, så selve oppsettet er synlig. En tegnforklaring nederst sier hva hvert ikon og hver linje betyr.

Ikke legg for mye inni en boks. Bare på et veldig komplisert landskap åpner jeg Salesforce opp i delene sine (Sales Cloud og Service Cloud inni orgen, med piler mellom dem). Og ikke finn opp femten former med mindre hver av dem forteller leseren noe. Jeg vil at noen skal se på landskapet i tretti sekunder og begynne å forstå arkitekturen. Fancy hjelper ikke. Tydelig gjør det.

Ikke vent til detaljdesignet med å tenke på volum. En pil som bærer 500 produkter per natt og en som bærer 200 000 GPS-målinger om dagen, kan se helt like ut på landskapet. De er ikke det samme problemet. Så før du tegner en eneste pil, tell det som beveger seg. Start inventaret bak bildet med tallene: én rad per viktig datasett, med volumet. Nullene dukker kanskje aldri opp på pilene, men du må vite når du krysser inn i høye tall: tusenvis eller millioner i timen, hundretusenvis av transaksjoner, til og med titalls til hundrevis av transaksjoner i sekundet.

De tallene styrer mekanismen. Noen hundre poster per natt er en batch. Et kall noen venter på, kan være synkront, hvis volumet tillater det. Titalls til hundrevis i sekundet kan kreve hendelser, som platform events, i stedet for ett kall per post. Pilen ser lik ut; volumet bestemmer hva som bærer den, så før det inn i inventaret, der mekanismen velges.

Mekanismen kan til og med endre retningen på pilen. Send et par poster i minuttet, og Salesforce kan ganske enkelt kalle ut: pilen starter i Salesforce. Send langt flere, og Salesforce publiserer kanskje hendelser på hendelsesbussen i stedet; det eksterne systemet abonnerer og kaller inn for å hente dem, så nå starter pilen i den andre enden. Enda større, for eksempel en nattlig synkronisering av millioner av poster, og det er en batchprosess. Så kjenn tallene dine tidlig, når du begynner å designe mekanismene, for tallene kan tegne pilene på nytt.

Volum betyr noe to steder, av to grunner. På en datamodell trenger jeg det for å holde øye med store datavolumer og planlegge arkivering; del 2 går i dybden på det. På et systemlandskap styrer de store tallene i inventaret valget av integrasjonsmønster og mekanisme. Modul 6 setter ekte nuller på landskapet og inventaret til Steve Trucking. Med tallene i hånd tegner du pilene.

Når systemene er på plass, kobler du dem sammen, og landskapet blir arkitektur. En boks er et system; pilen viser hvem som tar initiativ til forbindelsen. Den starter i systemet som åpner forbindelsen og peker på det systemet den kaller: fra klient til server. Etiketten sier hva som flyttes, og hvilken vei.

Den regelen gjelder systemlandskap, der systemer snakker med systemer. På et dataflytdiagram følger pilen dataene, som du ville forvente. Ikke ta med deg landskapsregelen inn i andre diagrammer; den skaper bare forvirring.

Landskapet med pilene Det samme landskapet som før, nå med piler; hver pil starter ved systemet som åpner forbindelsen, og etiketten sier hva som flytter seg og i hvilken retning. Interne brukere når Salesforce, partnerbrukere partnercommunityen, kunder kundecommunityen. Hver identitetsleverandør og Salesforce deler et sertifikat, vist som en prikket grønn linje med et sertifikat i hver ende: tillit, ikke et direkte kall, fordi påloggingen går gjennom brukerens nettleser som omdirigeringer. De ansattes identitetsleverandør sender også brukeroppdateringer til Salesforce. Salesforce sender dokumenter ut til AppExchange-appen for e-signatur og ordrer ut til integrasjonslaget, som sender produkter inn i Salesforce. Integrasjonslaget sender ordrer ut og henter produkter inn fra ERP-en; ERP-en sender ordrestatus inn til integrasjonslaget; integrasjonslaget henter betalinger inn fra økonomi. Data 360, under integrasjonslaget, åpner sine forbindelser: CRM-data ut av Salesforce, zero copy til datavarehuset og en referanse til de eksterne dataene. Nedenfra sender e-post saker inn og nettskjemaer kundeemner inn i Salesforce; Salesforce sender gamle saker ut til arkivet; datalastinger sender poster inn. OVER: IDENTITET, APPEXCHANGE, NETT MENNESKER TIL HØYRE: INTERNE SYSTEMER UNDER: KUNDEKANALER NEDERST TIL HØYRE: DATA INN OG UT Interne brukere salg, service, drift Partnerbrukere Kunder Offentlig nettsted De ansattes IdP enkel pålogging Partnernes IdP enkel pålogging AppExchange-app e-signatur Partnercommunity Kundecommunity Data 360 nær core: styres på core, driftes utenfor core INTEGRASJONSLAG (ESB) ERP ordrer, fakturaer Økonomi betalinger Ordrehåndtering Datavarehus analyse E-post e-post til sak Nettskjemaer nett til kundeemne Telefon kundesenter Meldinger SMS, chat Arkiv gamle saker Datalastinger migrering Eksterne data refereres, kopieres ikke Salesforce orgen vi designer rundt delt sertifikat brukeroppdateringer delt sertifikat dokumenter ut ordrer ut produkter inn ordrer ut, produkter inn ordrestatus inn betalinger inn CRM-data ut zero copy referert saker inn kundeemner inn gamle saker ut poster inn Salesforce en community mennesker identitet, apper, nett et internt system en kundekanal data inn og ut integrasjonslaget stiplet: ikke i drift ennå, eller referert starter ved systemet som åpner forbindelsen; etiketten sier hva som flytter seg et delt sertifikat: tillit, ikke noe direkte kall © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Pilene er lagt inn. Hver boks står der den sto; hver pil starter i systemet som åpner forbindelsen, og etiketten sier hva som flyttes og hvilken vei.

Så hvis integrasjonslaget dytter produkter inn i Salesforce, går pilen fra integrasjonslaget til Salesforce, merket produkter inn. Hvis Salesforce kaller ut for å hente dem, starter pilen i Salesforce, fortsatt merket produkter inn. Samme data, en annen samtale, og den forskjellen forteller meg hvem som trenger påloggingsinformasjonen og hvem som må håndtere feilen. Salesforce sender ordren gjennom integrasjonslaget: ordrer ut. ERP-ets ordreoppfyllelse kommer tilbake: ordrestatus inn. Nå kan jeg se hvem som starter hver samtale, hvor data kommer inn i Salesforce og hvor de forlater det, hvilke flyter som krysser grenser, hvor eierskapet sannsynligvis ligger, og hvor jeg må spørre mer.

Og husk modul 1: hver gang jeg bare ser én flyt, blir jeg bekymret. På overordnet nivå avhenger en ordrer ut-pil av returflyter: kunder inn, produkter inn, priser. Ser du enda dypere, finnes returreisen: godkjenning, avvisning, status, et fakturanummer, en kansellering. Pilene gir meg noe konkret å utfordre.

Det er her landskapet slutter å være PowerPoint-kunst. Foran review board kan hvilken som helst pil utløse tre spørsmål, og jeg vil at du skal ha svarene:

  • Hvordan autentiserer den? OAuth, et sertifikat, en named credential, noe annet?
  • Er den synkron eller asynkron? Venter Salesforce på ERP-et, eller publiserer det og går videre? Hvor fort trenger virksomheten resultatet?
  • Hva er mekanismen? Et REST-kall, en hendelse, en fil, en meldingskø, gjennom MuleSoft eller direkte?

Og så: hva skjer når den andre siden er nede? Hver pil trenger en mekanisme. Kan du ikke forklare den, er linjen pynt.

Og «fire and forget» er ikke et svar. Det betyr som regel «jeg har ikke designet hva som skjer etter at det er avfyrt». Kom det frem? Ble det godtatt? Feilet det? Prøver det på nytt? Hvem vet at det står fast? Hva om samme melding kommer to ganger? Ingenting av det skal på landskapet, som da ville blitt uleselig. Men pilen skal få deg til å vite at de spørsmålene finnes.

Zoom inn på én pil, så finnes det en klient og en server, og hver eier sin halvdel. Klienten åpner forbindelsen: den trenger endepunktet og porten, henter først et token fra autentiseringsserveren, kaller protokollen og kontrakten serveren definerer, og velger om den skal vente. Bare klienten ser hele rundturen, så bare klienten kan prøve på nytt. Serveren lytter, definerer protokollen, kontrakten og payloaden, validerer det som kommer inn, og ser bare sin egen del. Når jeg tegner en pil, vet jeg allerede hvilken ende som er hvilken, og det forteller meg hvem som eier hvert av disse spørsmålene.

Hver pil trenger en mekanisme Én pil fra landskapet, zoomet inn. Salesforce, klienten, med sin Named Credential og External Credential, sender ordrer ut til ERP-en, serveren, som har en External Client App og en integrasjonsbruker med kun API. En stiplet linje, kreves for OAuth, viser at klienten først går til en autentiseringsserver som utsteder tokenet. Under, rad for rad, hva klienten håndterer og hva serveren definerer. Hvor: klienten trenger endepunktet og porten; serveren lytter på en URL eller IP-adresse og en port. Autentisering: klienten henter først et token, håndterer utløp og logger inn igjen, med endepunktet i en Named Credential og autentiseringen i dens External Credential; serveren stoler på tokener fra sin autentiseringsserver, og dens External Client App og integrasjonsbruker bestemmer hva klienten får gjøre. Protokoll og kontrakt: klienten kaller dem; serveren definerer dem. Payload: klienten serialiserer og leser; serveren definerer JSON, XML eller binær. Timing: klienten velger å vente, fortsette eller kjøre etter en tidsplan; serveren må holde følge. Sporing: klienten ser hele turen fram og tilbake; serveren bare sin egen del. Feil og nedetid: klienten håndterer alle slags feil, prøver på nytt og vet når den står fast; serveren validerer det som kommer inn og kan ikke prøve på nytt. Under: ingenting av dette kommer på landskapet, men hver pil har det. kreves for OAuth Autentiseringsserver utsteder tokenet ordrer ut KLIENT Salesforce SERVER ERP Named Credential External Credential External Client App Integrasjonsbruker (kun API) KLIENTEN HÅNDTERER SERVEREN DEFINERER Hvor Trenger endepunktet (en URL eller IP-adresse) og porten å koble til. Lytter på en URL eller IP-adresse, på en port (for eksempel 443). Autentisering Henter først et token fra autentiseringsserveren; håndterer utløp og logger inn igjen. En Named Credential holder endepunktet, og dens External Credential autentiseringen. Stoler på tokener fra sin autentiseringsserver; en External Client App og en integrasjonsbruker med kun API bestemmer hva klienten får gjøre. Protokoll og kontrakt Kaller riktig protokoll, metoder og verb (for SOAP importeres WSDL-en). Definerer protokollen (REST, SOAP, gRPC) og kontrakten: metoder, verb, parametere, returverdier. Payload Serialiserer kallet og leser svaret i det avtalte formatet. Definerer payloaden: JSON, XML eller binær. Timing Velger: venter på svaret (synkront), fortsetter (asynkront) eller kjører etter en tidsplan (batch). Må holde følge: svarer på hvert kall når det kommer, eller tar imot batchen når den kommer. Sporing Ser hele turen fram og tilbake: hva som gikk ut, hva som kom tilbake, hvor lang tid det tok. Ser bare sin egen del: kallet som kommer inn, behandlingen, svaret som går ut. Feil og nedetid Håndterer tilkoblings-, autentiserings-, server- og svarfeil; prøver på nytt og vet når den står fast. Validerer det som kommer inn, og rapporterer sine egne feil; den ser ikke hele turen, så den kan ikke prøve på nytt. Ingenting av dette kommer på landskapet, men hver pil har det. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Én pil, zoomet inn: klienten håndterer, serveren definerer. Ingenting av dette skal på landskapet, men hver pil har det.

Snu nå pilen. Når ERP-et kaller Salesforce, er Salesforce serveren: det definerer API-ene, kjører sin egen autorisasjonsserver og bestemmer gjennom en External Client App og en integrasjonsbruker hva den som kaller, får gjøre. Samme spørsmål, andre siden.

Salesforce som server Den samme pilen snudd. ERP-en, klienten, med en klient-ID og en hemmelighet eller et sertifikat, sender ordrestatus inn i Salesforce, serveren, som kjører den som en integrasjonsbruker med kun API. En stiplet linje, kreves for OAuth, viser at ERP-en først går til Salesforces egen autorisasjonsserver, som utsteder tokenet for External Client App. Under, rad for rad, hva klienten håndterer og hva Salesforce definerer. Hvor: klienten trenger orgens My Domain-URL og API-versjonen; Salesforce lytter på My Domain over HTTPS. Autentisering: klienten henter et tilgangstoken gjennom External Client App og logger inn igjen når det utløper; Salesforce stoler på sine egne tokener, og appens retningslinjer og integrasjonsbrukerens tillatelser bestemmer hva klienten får gjøre. Protokoll og kontrakt: klienten kaller REST, SOAP eller Bulk API; Salesforce definerer API-ene, og orgens objekter og felter er kontrakten. Payload: JSON eller XML, CSV for Bulk. Timing: klienten venter, fortsetter eller laster i batcher; Salesforce må holde følge innenfor orgens API-grenser. Sporing: klienten ser hele turen fram og tilbake; Salesforce bare sin egen del. Feil og nedetid: klienten håndterer tilkoblings-, autentiserings-, grense- og svarfeil og prøver på nytt; Salesforce validerer det som kommer inn, returnerer feilene sine og kan ikke prøve på nytt. Under: ingenting av dette kommer på landskapet, men hver pil har det. kreves for OAuth Salesforces autorisasjonsserver utsteder tokenet for External Client App ordrestatus inn KLIENT ERP SERVER Salesforce Klient-ID og en hemmelighet, eller et sertifikat Integrasjonsbruker (kun API) KLIENTEN HÅNDTERER SERVEREN DEFINERER Hvor Trenger orgens My Domain-URL og API-versjonen. Salesforce lytter på orgens My Domain, over HTTPS (port 443). Autentisering Henter et tilgangstoken fra Salesforces autorisasjonsserver gjennom External Client App; håndterer utløp og logger inn igjen. Stoler på sine egne tokener; retningslinjene i External Client App og integrasjonsbrukerens tillatelser bestemmer hva klienten får gjøre. Protokoll og kontrakt Kaller API-et Salesforce definerer: REST, SOAP eller Bulk (for SOAP importeres WSDL-en). Salesforce definerer API-ene og versjonene deres; orgens objekter og felter er kontrakten. Payload Serialiserer kallet slik API-et forventer, og leser svaret. Definerer payloaden for hvert API: JSON eller XML, CSV for Bulk. Timing Velger: venter på svaret (synkront), fortsetter (asynkront) eller laster i batcher (Bulk API). Må holde følge, innenfor orgens API-grenser. Sporing Ser hele turen fram og tilbake: hva som gikk ut, hva som kom tilbake, hvor lang tid det tok. Ser bare sin egen del: kallet som kommer inn, lagringen og automatiseringen, svaret som går ut. Feil og nedetid Håndterer tilkoblings-, autentiserings-, grense- og svarfeil; prøver på nytt og vet når den står fast. Validerer det som kommer inn (valideringsregler, obligatoriske felter, deling) og returnerer feilene sine; den kan ikke prøve på nytt. Ingenting av dette kommer på landskapet, men hver pil har det. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Salesforce som server: de samme spørsmålene, med Salesforce som svarer for serverens halvdel.

Piler på landskapet, samtaler i en svømmebane

Section titled “Piler på landskapet, samtaler i en svømmebane ”

Her er stedet der arkitekter ødelegger et godt diagram: de får én artefakt til å svare på alt. Landskapet får API-navn, payloads, nye forsøk, feilkøer, transformasjoner, hver callback, og snart kan ingen lese det. Ikke gjør det. Landskapet er det store bildet: systemene og de viktige flytene mellom dem.

Når jeg må forklare en interaksjon, tegner jeg et diagram til, men ikke for hver integrasjon. Hvis system A sender noe til B, eller til og med spør og får et svar, er den merkede pilen nok. Jeg vil ha en svømmebane når prosessen blir en samtale: A kaller B, B sjekker med C, C svarer, B lager noe og kaller A tilbake, en person godkjenner, et annet system tar over. Tommelfingerregelen min: mer enn én eller to runder fram og tilbake, så får sekvensen sin egen svømmebane. Pilene på landskapet; samtalen i svømmebanen.

Og legg merke til at en pil betyr noe annet der. På landskapet er en pil en forbindelse: hvem som åpner den, og hva som flyttes. I en svømmebane er hver pil én melding i en samtale, lest i rekkefølge: en forespørsel går den ene veien, et svar kommer tilbake den andre, og neste steg følger.

Piler på landskapet, samtalen i en svømmebane De samme tre systemene vist på to måter. Øverst, som på landskapet: Salesforce sender ordrer ut til integrasjonslaget, som sender ordrenumre inn i Salesforce, og integrasjonslaget sender ordrer ut til ERP-en. Under blir hvert system en bane, og samtalen går nedover siden i seks nummererte trinn: 1, Salesforce sender ordren til integrasjonslaget; 2, integrasjonslaget svarer, akseptert, med en referanse; 3, integrasjonslaget ber ERP-en opprette ordren; 4, ERP-en oppretter ordren; 5, ERP-en svarer integrasjonslaget med ordrenummeret; 6, integrasjonslaget kaller Salesforce for å oppdatere ordren. Svar er lysere. Under: på landskapet er en pil en forbindelse; i en svømmebane er hver pil én melding, i rekkefølge. PÅ LANDSKAPET: HVEM SOM KOBLER SEG TIL, OG HVA SOM FLYTTER SEG I ET SVØMMEBANEDIAGRAM: SAMTALEN, I REKKEFØLGE Salesforce Integrasjonslag ERP ordrer ut ordrenumre inn ordrer ut send ordren 1 akseptert: en referanse 2 opprett ordren 3 oppretter ordren 4 ordrenummeret 5 oppdater ordren 6 På landskapet er en pil en forbindelse. I en svømmebane er hver pil én melding, i rekkefølge. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Tre piler på landskapet; seks steg i svømmebanen. På landskapet er en pil en forbindelse; i en svømmebane er hver pil én melding, i rekkefølge.

Når landskapet ser nesten ferdig ut, gå gjennom det, pil for pil. ERP til Salesforce: hva flyttes, hvem eier det, hvordan autentiserer den, hva er mekanismen, synkront eller asynkront, hvor oppdatert må det være? Så neste pil, og den neste. Det er her hullene dukker opp. «Å, vi fant aldri ut hvordan partneren faktisk sender det.» «Vi sender ordrer til ERP-et, men vi har ikke designet hvordan de avviste kommer tilbake.» Bra. Du fant det på tavla i stedet for i produksjon.

Bildet må forbli lesbart, så detaljene går i inventaret bak det. Du startet det med tallene; nå fullfører du det, én rad per viktig datasett eller flyt:

KolonneHva jeg vil vite
DatasettKunde, produkt, ordre, levering, faktura
TypeMasterdata, referansedata, transaksjonsdata, analytiske data, ustrukturerte data
EierHvem eier meningen og livssyklusen?
System of recordHvor er den autoritative versjonen?
ArbeidsbelastningOperativ, analytisk, strømmende
VolumAntall nuller
OrgHvilken Salesforce-org, hvis det finnes flere?
AutentiseringHvordan etablerer forbindelsen tillit?
Mekanisme og timingAPI, hendelse, fil, føderering; synkront, asynkront, batch
TilnærmingKopiere, referere eller føderere?

Nå finnes det to artefakter: landskapet lar meg se arkitekturen, og inventaret lar meg forhøre den.

Inventaret bak bildet Inventaret bak landskapet, én rad per flyt, med kolonnene for volum og mekanisme tonet sammen. Produkter inn: eies av ERP-en, omtrent 500 endringer per natt, en nattlig batch gjennom integrasjonslaget, en External Client App og en integrasjonsbruker, kopieres. Ordrer ut: eies av Salesforce, omtrent 2 000 om dagen, noen få i minuttet, nær sanntid når Salesforce kaller ut gjennom integrasjonslaget, med en callout fra Apex eller Flow og en Named Credential, kopieres. Ordrestatus inn: eies av ERP-en, omtrent 16 000 om dagen i støt, asynkront når ERP-en sender til integrasjonslaget, som oppdaterer Salesforce gjennom REST API, kopieres. Betalinger inn: eies av økonomi, omtrent 1 500 om dagen, en batch hver time gjennom Bulk API 2.0, kopieres. CRM-data ut: eies av Salesforce, millioner av poster, Data 360 henter fra orgen etter en tidsplan, nær core, kopieres til Data 360. Zero copy: datavarehusets fem års historikk, hundrevis av millioner rader, spørres på stedet, fødereres. Referert: en ekstern leverandør, ett oppslag om gangen, leses når noen trenger det, refereres. Under: pilene ligner hverandre på landskapet; volumet avgjør hva som bærer hver av dem. FLYT PÅ LANDSKAPET EIER VOLUM MEKANISME OG TIMING AUTENTISERING KOPIER, REFERER ELLER FØDERER Produkter inn ERP ~500 endringer per natt Batch: integrasjonslaget laster dem hver natt External Client App, integrasjonsbruker Kopier Ordrer ut Salesforce ~2 000 om dagen, noen få i minuttet Nær sanntid: Salesforce kaller ut gjennom integrasjonslaget, med en callout fra Apex eller Flow Named Credential Kopier Ordrestatus inn ERP ~16 000 om dagen, i støt Asynkront: ERP-en sender til integrasjonslaget, som oppdaterer Salesforce gjennom REST API External Client App, integrasjonsbruker Kopier Betalinger inn Økonomi ~1 500 om dagen Batch: hver time, gjennom integrasjonslaget og Bulk API 2.0 External Client App, integrasjonsbruker Kopier CRM-data ut Salesforce Millioner av poster, alle sammen Data 360 henter fra orgen etter en tidsplan Nær core: styres i orgen Kopier til Data 360 Zero copy Datavarehus Fem års historikk, hundrevis av millioner rader Spørres på stedet ved behov En Data 360-forbindelse til datavarehuset Føderer Referert Ekstern leverandør Ett oppslag om gangen Leses når noen trenger det En Data 360-forbindelse Referansedata Pilene ligner hverandre på landskapet. Volumet avgjør hva som bærer hver av dem. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Inventaret bak ED-D42. Pilene ser like ut på landskapet; volumet bestemmer hva som bærer hver av dem.

Derfor liker jeg denne artefakten: den hjelper meg å tenke. «Hvordan skal vi rapportere på tvers av Salesforce og ERP-et?» Det er spørsmålet fra modul 3: hvilket av diagrammene mine løser dette på en vakker måte? Landskapet. Hvis alt er på core, standardrapporter. Hvis dataene er i ERP-et og datavarehuset, ser du det med en gang. «Hvor bør denne kundeattributten håndteres som masterdata?» Se på hvilke systemer som bruker den og hvilket som allerede eier kunden. «Trenger Salesforce hver GPS-måling?» Hvem produserer den, hvem bruker den, hva er arbeidsbelastningen? Kanskje Salesforce trenger gjeldende posisjon, og en annen plattform tar vare på historikken. Landskapet gir deg ikke svaret. Det gir deg riktig utsyn over problemet.

Én disiplin til. I en eksisterende virksomhet tegner du det som finnes, ikke det du skulle ønske fantes. Regnearket som sendes på e-post hver fredag: tegn det. Partnerens CSV på en SFTP-server: tegn den. Integrasjonen som går utenom ESB-en av historiske grunner: tegn den. Folk som taster inn data på nytt mellom to systemer: vis det. Ikke rydd opp i virkeligheten mens du dokumenterer den. Du trenger dagens landskap før du designer mållandskapet, og det er det vi gjør for Steve Trucking i modul 6.

Utover eksamen: hva KI endrer. Landskapet er i ferd med å bli et kart for agenter. Hvis en agent svarer på «hvor er leveringen min?», må landskapet si om svaret kommer fra Salesforce, et partnersystem, telematikk, ERP-et eller en blanding. Agenter fjerner ikke systemgrenser; de gjør det enda viktigere å vite hvilket system som er autoritativt, og hvordan du når det trygt.

  • Hvilke systemer og brukergrupper som hører hjemme på landskapet, og hvordan plasseringen viser rollen deres.
  • Hvilke flyter som krysser systemgrenser, i hvilken retning, og hva som kommer tilbake.
  • Hvordan hver forbindelse autentiserer, hvilken mekanisme som bærer den, og om den er synkron, asynkron, batch eller føderert.
  • Når en merket pil er nok, og når en interaksjon trenger sin egen svømmebane.
  • Hva inventaret bak bildet registrerer: eier, arbeidsbelastning, volum, org, timing, autentisering, og kopiere, referere eller føderere.

Landskapet er ikke noe jeg tegner etter at arkitekturen er ferdig. Det er måten jeg finner arkitekturen på. Og når du tror det er ferdig, ikke beundre det. Gå gjennom det. Hver pil du ennå ikke kan forklare, viser deg hvor arbeidet er.