Deze handleiding helpt u bij het evalueren van de juiste aanpak voor uw asynchrone verwerkingsvereisten op het Salesforce-platform. Het verklaart elke benadering en geeft details over de sterke punten en beperkingen van elke benadering. De meeste benaderingen zijn afgestemd op een productvoorziening, maar sommige benaderingen gebruiken meerdere voorzieningen in coördinatie. De handleiding bevat gebruikscases om te markeren wanneer u elke benadering moet gebruiken.

Asynchrone verwerking biedt twee belangrijke voordelen voor uw architectuur. Ten eerste vergroot het de schaalbaarheid omdat asynchrone processen hogere beheerlimieten hebben. Ten tweede worden asynchrone verzoeken uitgevoerd in hun eigen threads, zodat gebruikers ander werk kunnen doen terwijl de asynchrone taken op de achtergrond worden uitgevoerd.

Deze handleiding richt zich uitsluitend op het kiezen van een asynchrone verwerkingstechnologie binnen het Salesforce Platform. Andere resources om uw beslissingsproces te vergemakkelijken, worden vermeld in de sectie Resources.

Salesforce Platform Het Salesforce Lightning Platform is een uitgebreid, AI-gestuurd platform dat werknemers, autonome AI-agenten, bedrijfsgegevens en toepassingen verenigt in één vertrouwd systeem om de productiviteit en klantervaring te verbeteren. Het maakt het mogelijk om een "agentische onderneming" te maken door Customer 360 apps, Data Cloud en Slack te verbinden voor end-to-end automatisering.

Dit document behandelt geen technologieën in andere ecosystemen zoals MuleSoft, Informatica, Commerce Cloud, Tableau en Marketing Cloud.

  • Zorg er vóór het gebruik van asynchrone verwerking voor dat uw gebruikscases in het patroon passen. Asynchrone patronen hebben geen SLA, zijn onderworpen aan meerdere beheermechanismen, kunnen capaciteitslimieten hebben gedefinieerd op basis van licenties en kunnen verwerkingsvertragingen veroorzaken vanwege de beperkte aard van de resources die zijn toegewezen aan asynchrone infrastructuur binnen het Salesforce Platform. Denk aan de volgende beperkingen bij het gebruik van asynchrone verwerking in scenario's waarin een gebruiker een reactie van het systeem nodig heeft voordat deze verder kan gaan met zijn werk.
  • Asynchrone verwerking met Salesforce is geen oplossing voor grenzeloze schaalbaarheidsbehoeften. Het Salesforce Platform kan niet oneindig worden geschaald en asynchrone patronen zijn onderworpen aan beperkingen. Asynchrone verwerking gebruikt threads, die de contextuele informatie bevatten die een CPU nodig heeft om een stroom instructies uit te voeren. Threads kunnen parallel worden uitgevoerd. Het aantal beschikbare threads in een CPU is beperkt, dus het platform heeft mechanismen om de beschikbare threads zo efficiënt mogelijk te gebruiken. Het stroomregelingsmechanisme van het platform voorkomt dat organisaties te veel threads verbruiken en andere organisaties negatief beïnvloeden. Het fair use-algoritme van het platform bepaalt ook het aantal threads dat een organisatie beschikbaar heeft voor elk bepaald berichttype.
  • Houd rekening met events die extreme belastingen kunnen veroorzaken. Wanneer u asynchrone processen ontwerpt, zorg er dan voor dat ze voorspelbaar pieken en pieken in werkbelasting kunnen beheersen. Denk na over de manier waarop uw implementatie onverwachte gebeurtenissen, zoals stroomuitval, afhandelt, en ontwerp beveiligingen die gegevensverlies of functionaliteitsverlies beperken.

Deze tabel geeft een overzicht van de tools die beschikbaar zijn voor asynchrone verwerking met Salesforce. Raadpleeg deze tabel om de belangrijkste kenmerken van elke tool tijdens uw besluitvormingsproces te bekijken. Zie Gebruikscases en beslissingspunten voor hulp bij het kiezen van de juiste tools voor uw architectuur.

Benadering Beschrijving Vereiste vaardigheden Licenties en limieten
Wachtrijbare Apex Gebruik dit voor processen die langdurige databasebewerkingen of externe webserviceaanroepen omvatten. Apex biedt voorzieningen zoals taak-ID's, ondersteuning voor niet-primitieve typen en taakketens. Pro-code Het aantal licenties kan de limieten verhogen.
Batch Apex Stel complexe, langlopende processen samen waarbij miljoenen records zijn betrokken door uw recordset te verdelen en deze in beheersbare blokken te verwerken. Pro-code Het aantal licenties kan de limieten verhogen.
Geplande Apex Apex uitvoeren op een gepland tijdstip dat wordt gedefinieerd door een cron-expressie. Hoewel het plannen van Apex via de cron-expressie een asynchroon proces is, wordt de onderliggende code synchroon uitgevoerd wanneer de taak start. Pro-code Het aantal licenties kan de limieten verhogen.
Apex Continuation Callouts Aanroepen uitvoeren vanuit Apex methoden die worden uitgevoerd in een synchrone transactiecontext. Pro-code Nee
Asynchroon pad (door records geactiveerde stromen) Voer een bewerking uit die u op een eigen tijdstip wilt uitvoeren. Vermijd gemengde DML-fouten die optreden wanneer u een waarde bijwerkt voor een gerelateerde record die geen deel uitmaakt van de record die een stroom heeft geactiveerd. Laagcode Het aantal en type licenties kan de limieten verhogen.
Gepland traject (na verbintenisstromen) Uitvoeren op een dynamisch gepland tijdstip na een activerende event, bijvoorbeeld wanneer een record wordt gemaakt, bijgewerkt of verwijderd. Laagcode Het aantal en type licenties kan de limieten verhogen.
Geplande stromen Voer een stroom op de achtergrond uit op een opgegeven tijdstip en met een herhaalde frequentie (dagelijks, wekelijks of eenmalig) om acties uit te voeren op een batch records. Laagcode Het aantal en type licenties kan de limieten verhogen.
Platform-eventtriggers Koppel Salesforce losjes aan externe systemen en communiceer tussen asynchrone componenten binnen het Salesforce Platform. Laagcode + Pro-code Een uitbreidingslicentie is vereist voor gebruikscases voor platformevents met groot volume
Gegevensvastlegging wijzigen Leg wijzigingsevents asynchroon vast en verwerk ze nadat de databasetransactie is doorgevoerd. Pro-code Een uitbreidingslicentie is vereist om boven de baselinetoewijzing te schalen.
Bulk API Voeg asynchroon vele records in, werk ze bij, voeg ze toe, voer er een query op uit of verwijder ze en verwerk de resultaten later. Pro-code Er zijn grenzen.
Lightning Acties Laat Lightning pagina's werken met de server zonder gebruikers te dwingen de pagina volledig te vernieuwen. Laagcode Nee

Deze tabel bevat een overzicht van punten die u in overweging moet nemen wanneer u besluit welke asynchrone tool u wilt gebruiken.

Vereiste vaardigheden Sommige van de in deze handleiding beschreven tools vereisen code, terwijl andere declaratief kunnen worden geconfigureerd. Denk na over de vaardighedensets die uw teamleden hebben. Houd er rekening mee dat zelfs als er ontwikkelaars beschikbaar zijn voor uw initiële implementatie (bijvoorbeeld via een implementatiepartner), u uw oplossingen in de toekomst mogelijk moet aanpassen. Als uw onderhoudsteam geen ontwikkelaars heeft, kan een optie met weinig code beter passen.
Type afgedwongen platformlimieten Bepaal het type limieten dat van toepassing is op de uitvoering. Denk bij het ontwerpen van uw oplossingen goed na over de manier waarop het volume en de frequentie van transacties elke dag meetellen voor de beheerlimieten voor de gekozen benadering. Bereken het aantal uitvoeringen dat elke dag zal plaatsvinden. Zorg ervoor dat de berekende waarden binnen de limieten vallen die zijn gekoppeld aan uw geselecteerde tools.
Latency Bepaal hoe snel de resultaten van de verwerking beschikbaar zijn in het platform. Voor sommige benaderingen zullen de wijzigingen vrijwel onmiddellijk zijn, terwijl het voor andere minuten of uren kan zijn.

Wanneer u een tool voor asynchrone verwerking selecteert, evalueert u eerst de vereisten en beschikbare resources van uw organisatie. Uw doel is om de tool of tools te selecteren die de implementatie- en onderhoudskosten minimaliseren, maar toch de schaalbaarheid waarborgen en de kans op limietschendingen minimaliseren. Dit doel is afhankelijk van de eerder geschetste technische overwegingen en de samenstelling van uw team.

Overweeg een asynchroon bestelproces in Salesforce. Wanneer een order wordt opgeslagen, activeert deze een bericht naar een extern magazijnbeheersysteem met speciale instructies voor het verpakken en verzenden van een item. De gebruiker die de order plaatst, heeft geen onmiddellijke reactie van het magazijnbeheersysteem nodig, waardoor de aanvraag asynchroon kan worden verzonden. Door de asynchrone verwerking kan de gebruiker doorgaan met zijn werk zonder te hoeven wachten op een reactie.

Voor deze gebruikscase kunt u overwegen om te implementeren met Apex. Deze benadering werkt alleen als u Apex ontwikkelaars in uw team hebt die uw pro-code oplossing kunnen onderhouden. Anders heeft een declaratieve benadering meer zin. Houd er ook rekening mee dat verschillende sets limieten van toepassing zijn op verschillende tools.

Deze tabel vermeldt veel voorkomende gebruikscases in de meest linkse kolom, gevolgd door een beschrijving. De kolom Eerste keuze biedt de meest typische benadering die wordt gebruikt om aan een dergelijke gebruikscase te voldoen, samen met de reden voor de benadering Eerste keuze. Gebruik dit als uitgangspunt in uw analyse. De benadering van Eerste keuze kan beperkingen hebben die niet werken voor uw gebruikscase.

Gebruikscase Beschrijving Eerste keuze benadering Motivering
Krachtige batchverwerking Elke automatisering die duizenden of miljoenen records efficiënt moet verwerken Batch Apex Batch Apex biedt rijke API's voor interface met het platform en voor ruwe snelheid.
Taak Gegevens opschonen Een taak die routinematig of on demand wordt uitgevoerd en die gegevens opschoont. Voorbeelden omvatten ontdubbeling, adresverificatie of gegevensconsolidatie. Batch Apex Batch Apex biedt rijke API's voor interface met het platform en voor ruwe snelheid.
Nachtelijke totaaltaak Taak die totaliseringsgegevens berekent aan het einde van een werkdag. Batch Apex Batch Apex biedt rijke API's voor interface met het platform en voor ruwe snelheid.
Door records geactiveerde logica Logica uitvoeren als reactie op een recordupdate. Varieert Zie onze begeleidende beslissingshandleiding, Door records geactiveerde events automatiseren. Het omvat een beslissingsstructuur voor asynchrone gebruikscases, inclusief Apex in wachtrij, Batch Apex, Geplande Apex, Geplande stroom, Asynchrone padstromen en Gegevensvastlegging wijzigen.
Cascading van updates via een objectgrafiek Hiermee kan de actie voor opslaan van een gebruiker snel worden voltooid, waardoor trapsgewijze updates van andere objecten asynchroon worden uitgevoerd. Apex in wachtrij Apex heeft krachtige ketenfuncties waarmee logica een keten van updates kan verdelen in een reeks asynchrone transacties.
Recordspecifieke geplande verwerking Automatisering op een toekomstige, dynamische datum die specifiek is voor de record (bijvoorbeeld 3 dagen vóór een sluitingsdatum). Stroom met een gepland traject Geplande trajecten bieden een unieke kracht voor Flow, aangezien het platform automatisch het plannen, annuleren en opnieuw plannen van deze trajecten afhandelt als de gegevens van de record veranderen.
Meerdere langzame externe services parallel aanroepen Tijdens een synchrone uitvoering worden meerdere externe services parallel aangeroepen om de algehele uitvoeringstijd te optimaliseren. Apex-aanroepen voor vervolg Door meerdere traag lopende aanroepen parallel te laten uitvoeren, wordt de totale tijd voor het voltooien van het werk geminimaliseerd.
Gegevensmigratie van records vanuit een extern systeem Verplaats grote hoeveelheden records naar het Salesforce Platform vanuit een extern systeem. Een eenmalig of regelmatig gepland proces. Bulk-API Dit is de meest efficiënte en limietvriendelijke benadering voor gegevensmigratie.
Aanvullende logica uitvoeren op een extern systeem Fire-and-forget-patroon waarbij een extern systeem wordt geïnformeerd over een event op het platform, waarna dat systeem de event asynchroon kan verwerken. Platform-events of gegevensvastlegging wijzigen Een pub-submodel werkt hier het best en zorgt ervoor dat het externe systeem de event kan verwerken wanneer het klaar is. Zie Event-Driven Architecture voor meer details over dit patroon.

De tabel Gebruikscases is een leidraad voor de best passende aanpak voor elke gebruikscase. U moet echter valideren hoe goed de First Choice-technologie aansluit op de specifieke behoeften van uw gebruikscase. Bepaal met name of de gekozen benadering kan voldoen aan de beheerlimieten voor uw organisatie.

Zodra u een kandidaatbenadering voor uw gebruikscase hebt geïdentificeerd, kan de Asynchronous Processing Fundamentals Guide helpen bij het volledig doorlichten van de oplossing.

Deze extra resources kunnen u helpen bij uw beslissingsproces: