SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
● Who is CodeScience?
● Introductions
● Common Integration Patterns
● Integration Considerations & Pitfalls
● Leveraging a Custom Queue
● Recap
Agenda
Who is CodeScience?
● Founding partner of the Salesforce Product
Development Organization (PDO) Program
since 2008 - named Master PDO in 2017
● We build Salesforce AppExchange solutions
for our clients.
Client success: 10% of the AppExchange
CodeScience client focus:
Today’s Speakers:
Mark Pond
Technical Architect
CodeScience
Common Integration Patterns
6 commonly documented Salesforce integration patterns:
● Remote Process Invocation—Request and Reply (Apex callout)
● Remote Process Invocation—Fire and Forget (Platform Events / Outbound Messaging)
● Batch Data Synchronization (Middleware / Change Data Capture)
● Remote Call-In (REST API / SOAP API/custom Apex API)
● UI Update Based on Data Changes (Streaming API)
● Data Virtualization (Salesforce Connect)
Each of these integration patterns has a good/better/best ranking for common integration
scenarios and they also have significant limitations around guaranteed delivery, background
execution, delayed processing, retry & exponential backoff strategies, or usability in logging &
archival solutions.
Let's talk about a reliable pattern that straddles the first three bullets and addresses some
significant shortcomings...
Integration Considerations & Pitfalls (1/2)
With all integrations it is important to evaluate and plan for the level of resiliency that your solution requires.
While some applications are unaffected by integration messages which have failed to be delivered, in others it
may be imperative that every message be sent and acknowledged.
● Reporting: do you need to know how many records are awaiting processing?
● Monitoring: do you need the system to notify you when an integration appears to be having
performance problems?
● Guaranteed Delivery: do you need to know that every message reached its destination? Kafka queues
used by CDC and Platform Events do not have guaranteed message delivery. Your message has the
possibility of silently not being published.
● Retry: Do you need the ability to retry an operation, potentially with a progressive backoff increasing
the time between each successive retry?
● Object and Field limitations: which objects and field types do you need to integrate with? Some field
types are not supported by all integration options.
● ...
Integration Considerations & Pitfalls (2/2)
With all integrations it is important to evaluate and plan for the level of resiliency that your solution requires.
While some applications are unaffected by integration messages which have failed to be delivered, in others it
may be imperative that every message be sent and acknowledged.
● …
● Chaining of Actions while processing: Do you have a complex orchestration that is best suited to be
on-platform and includes a chained set of steps?
● Prioritization of Execution: Do you need to prioritize integration activities? High priority on-demand
action by a user vs a lower priority job, etc.
● Scheduled Job limits: Are you concerned with the number of scheduled jobs your Salesforce org needs
to operate?
● Message Duration: Are you concerned with the duration of integration messages? CDC: 3 days;
Outbound Messages: 24 hours; Data Replication API: 30 days of actions / record id values;
● Delayed Processing: Do you need delayed processing of records by the integration which cannot be
accommodated by Time Based Workflow Rules?
Leveraging a Custom Queue
Building a custom solution, which relies on data stored temporarily in an SObject, enables
quite a few solutions to be designed to address the concerns in the previous list.
It enables guaranteed delivery, retry behavior, prioritization, delayed processing of messages,
custom interfaces, dynamic instantiation of custom 'workers' via queueables, background /
asynchronous operations, and more.
Benefits:
● Reliability - Data written to SObject records cannot be purged from a Salesforce queue such as the time
based workflow queue can
● Scalability - SObject records control pending queue depth
● Reportability - Leverage standard platform reporting tools for queue analytics
● Retry-ability - Queue records can be reprocessed based on your own retry logic and errored out as
necessary with error log details
● Notifications - Leverage standard platform tools such as email workflow rules to alert administrators
when issues need to be addressed
● Flexibility - Any data format supported in queue item body, Any data format supported in worker
classes
● Durability - Queueable job chaining allows the org to continue processing records infinitely until the
queue is "empty"
● Security - Encryption of queue item payload at rest is possible in a managed package scenario where the
encryption key can be protected
Leveraging a Custom Queue
Example Use Cases
● Error Logging - Write log records asynchronously to Big Objects
● Translation of record data - callout to Google translation to translate the value of a
custom field into another language
● Address Verification - call out to address verification system to confirm and correct
mailing address data
● Record enrichment - call out to SaaS endpoint for business info (in scheduled execution
or on demand by a user)
● SMS delivery - call out to telecom service to deliver SMS messages
● Delayed sending of EMail messages
● Calling a remote API which does not support data in bulk or is fragile or frequently
down, requires slower processing such as one record at a time
High Level Design Pattern
Let's look at a high-level design diagram of the application flow.
Demo
Let us see some code!
The most significant benefit to the custom object + queue processor in apex solution is that you
control your own delivery of messages to or from remote services and can implement it in any
method you choose. You are able to implement your own guaranteed delivery mechanism.
You are also able to take advantage of the numerous additional platform features as your
solution demands.
For instance, if you needed to guarantee delivery of a platform event, you could write to the
custom queue when a record is modified and then let the queue item worker fire a platform
event on your behalf at a later time. A subscriber could then write back to salesforce when the
message is processed, removing the item from the queue.
This abstraction allows you to introduce custom logic such as retries and sending
administrative notifications when an item reaches an error state or receives no
acknowledgement.
Benefits
The most significant limitation in this custom queue implementation is that it cannot currently
handle a cascade delete scenario easily.
Because the cascading actions do not fire triggers, process builders, flows, etc. that makes it
extremely challenging to integrate with this implementation.
The apex in a worker instance could query for recently deleted items with parent records in
the queue item data - but this is still an imperfect solution since records may not be available
in the recycle bin
Limitations
Recap
What did we cover:
- Salesforce standard integration solutions
- Custom queue solution
Do your due diligence.
There is no one-size fits all solution to solve all integration needs. This custom queue
implementation pattern has a very large number of possible use cases which it can help solve
but it requires a fair amount of custom code.
It centralizes a lot of functionality on the platform in apex which may not be the best choice
for your business and your developer skills if you have deep expertise in other areas.
Contact Us:
Thank You
info@codescience.com

Contenu connexe

Tendances

M.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comM.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comArun Somu Panneerselvam
 
Deep Dive into the PeopleSoft Alert Framework
Deep Dive into the PeopleSoft Alert FrameworkDeep Dive into the PeopleSoft Alert Framework
Deep Dive into the PeopleSoft Alert FrameworkSmart ERP Solutions, Inc.
 
PayPal Decision Management Architecture
PayPal Decision Management ArchitecturePayPal Decision Management Architecture
PayPal Decision Management ArchitecturePradeep Ballal
 
24. Advanced Transaction Processing in DBMS
24. Advanced Transaction Processing in DBMS24. Advanced Transaction Processing in DBMS
24. Advanced Transaction Processing in DBMSkoolkampus
 
What is Oracle Demantra
What is Oracle Demantra What is Oracle Demantra
What is Oracle Demantra Amit Sharma
 
PayPal Resilient System Design
PayPal Resilient System DesignPayPal Resilient System Design
PayPal Resilient System DesignPradeep Ballal
 
10 Ways to Better Application-Centric Service Management
10 Ways to Better Application-Centric Service Management10 Ways to Better Application-Centric Service Management
10 Ways to Better Application-Centric Service ManagementLinh Nguyen
 
Configure Versus Customize: Using PeopleSoft Page and Field Configurator
Configure Versus Customize: Using PeopleSoft Page and Field ConfiguratorConfigure Versus Customize: Using PeopleSoft Page and Field Configurator
Configure Versus Customize: Using PeopleSoft Page and Field ConfiguratorSmart ERP Solutions, Inc.
 
De-Mystifying Capacity Management in the Digital World
De-Mystifying Capacity Management in the Digital WorldDe-Mystifying Capacity Management in the Digital World
De-Mystifying Capacity Management in the Digital WorldPrecisely
 
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)Jeffrey Nunn
 
Event-driven BPM the JBoss way
Event-driven BPM the JBoss wayEvent-driven BPM the JBoss way
Event-driven BPM the JBoss wayKris Verlaenen
 
How to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionHow to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionkanimozhin
 
Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...
Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...
Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...camunda services GmbH
 
Alert Framework - Alert your organization to errors, changes, and stalled tra...
Alert Framework - Alert your organization to errors, changes, and stalled tra...Alert Framework - Alert your organization to errors, changes, and stalled tra...
Alert Framework - Alert your organization to errors, changes, and stalled tra...Smart ERP Solutions, Inc.
 
Oracle ASCP Upgrade to 12.2.5.1
Oracle ASCP Upgrade to 12.2.5.1Oracle ASCP Upgrade to 12.2.5.1
Oracle ASCP Upgrade to 12.2.5.1Amit Sharma
 
How to pinpoint and fix sources of performance problems in your SAP BusinessO...
How to pinpoint and fix sources of performance problems in your SAP BusinessO...How to pinpoint and fix sources of performance problems in your SAP BusinessO...
How to pinpoint and fix sources of performance problems in your SAP BusinessO...Xoomworks Business Intelligence
 

Tendances (20)

M.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comM.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.com
 
Sapuki sig 2013
Sapuki sig 2013Sapuki sig 2013
Sapuki sig 2013
 
Deep Dive into the PeopleSoft Alert Framework
Deep Dive into the PeopleSoft Alert FrameworkDeep Dive into the PeopleSoft Alert Framework
Deep Dive into the PeopleSoft Alert Framework
 
PayPal Decision Management Architecture
PayPal Decision Management ArchitecturePayPal Decision Management Architecture
PayPal Decision Management Architecture
 
24. Advanced Transaction Processing in DBMS
24. Advanced Transaction Processing in DBMS24. Advanced Transaction Processing in DBMS
24. Advanced Transaction Processing in DBMS
 
What is Oracle Demantra
What is Oracle Demantra What is Oracle Demantra
What is Oracle Demantra
 
PayPal Resilient System Design
PayPal Resilient System DesignPayPal Resilient System Design
PayPal Resilient System Design
 
10 Ways to Better Application-Centric Service Management
10 Ways to Better Application-Centric Service Management10 Ways to Better Application-Centric Service Management
10 Ways to Better Application-Centric Service Management
 
Configure Versus Customize: Using PeopleSoft Page and Field Configurator
Configure Versus Customize: Using PeopleSoft Page and Field ConfiguratorConfigure Versus Customize: Using PeopleSoft Page and Field Configurator
Configure Versus Customize: Using PeopleSoft Page and Field Configurator
 
De-Mystifying Capacity Management in the Digital World
De-Mystifying Capacity Management in the Digital WorldDe-Mystifying Capacity Management in the Digital World
De-Mystifying Capacity Management in the Digital World
 
GuideIT High Level Consulting Framework
GuideIT High Level Consulting FrameworkGuideIT High Level Consulting Framework
GuideIT High Level Consulting Framework
 
Checklist for artwork management software
Checklist for artwork management softwareChecklist for artwork management software
Checklist for artwork management software
 
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
Black Friday Performance Testing with HPE's Stormrunnerload 2016 (1)
 
Event-driven BPM the JBoss way
Event-driven BPM the JBoss wayEvent-driven BPM the JBoss way
Event-driven BPM the JBoss way
 
How to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionHow to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solution
 
Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...
Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...
Camunda Day Amsterdam 2019: Best Practices for successfully introducing Camun...
 
Alert Framework - Alert your organization to errors, changes, and stalled tra...
Alert Framework - Alert your organization to errors, changes, and stalled tra...Alert Framework - Alert your organization to errors, changes, and stalled tra...
Alert Framework - Alert your organization to errors, changes, and stalled tra...
 
Oracle ASCP Upgrade to 12.2.5.1
Oracle ASCP Upgrade to 12.2.5.1Oracle ASCP Upgrade to 12.2.5.1
Oracle ASCP Upgrade to 12.2.5.1
 
How to pinpoint and fix sources of performance problems in your SAP BusinessO...
How to pinpoint and fix sources of performance problems in your SAP BusinessO...How to pinpoint and fix sources of performance problems in your SAP BusinessO...
How to pinpoint and fix sources of performance problems in your SAP BusinessO...
 
Resume
ResumeResume
Resume
 

Similaire à Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Platform Apps

Integration strategy for large erp deployments
Integration strategy for large erp deploymentsIntegration strategy for large erp deployments
Integration strategy for large erp deploymentsArup Dutta
 
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)Knoldus Inc.
 
Resume quaish abuzer
Resume quaish abuzerResume quaish abuzer
Resume quaish abuzerquaish abuzer
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationesebeus
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureTapio Rautonen
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glancekanimozhin
 
Microservice at a glance
Microservice at a glanceMicroservice at a glance
Microservice at a glanceKetan Ghumatkar
 
Informatica 5+years of experince
Informatica 5+years of experinceInformatica 5+years of experince
Informatica 5+years of experinceDharma Rao
 
Informatica 5+years of experince
Informatica 5+years of experinceInformatica 5+years of experince
Informatica 5+years of experinceDharma Rao
 
Informatica_5+years of experince
Informatica_5+years of experinceInformatica_5+years of experince
Informatica_5+years of experinceDharma Rao
 
Oracle Forms Modernization Roadmap
Oracle Forms Modernization RoadmapOracle Forms Modernization Roadmap
Oracle Forms Modernization RoadmapKai-Uwe Möller
 
World Artificial Intelligence Conference Shanghai 2018
World Artificial Intelligence Conference Shanghai 2018World Artificial Intelligence Conference Shanghai 2018
World Artificial Intelligence Conference Shanghai 2018Adam Gibson
 
JourneyToLowCode_2of4.pdf
JourneyToLowCode_2of4.pdfJourneyToLowCode_2of4.pdf
JourneyToLowCode_2of4.pdfVaibhavVaidya30
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glanceTechcello
 

Similaire à Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Platform Apps (20)

Integration strategy for large erp deployments
Integration strategy for large erp deploymentsIntegration strategy for large erp deployments
Integration strategy for large erp deployments
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
 
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
 
Resume quaish abuzer
Resume quaish abuzerResume quaish abuzer
Resume quaish abuzer
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentation
 
Resume
ResumeResume
Resume
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
Microservice at a glance
Microservice at a glanceMicroservice at a glance
Microservice at a glance
 
Informatica 5+years of experince
Informatica 5+years of experinceInformatica 5+years of experince
Informatica 5+years of experince
 
Informatica 5+years of experince
Informatica 5+years of experinceInformatica 5+years of experince
Informatica 5+years of experince
 
Informatica_5+years of experince
Informatica_5+years of experinceInformatica_5+years of experince
Informatica_5+years of experince
 
Going Serverless on AWS
Going Serverless on AWSGoing Serverless on AWS
Going Serverless on AWS
 
Oracle Forms Modernization Roadmap
Oracle Forms Modernization RoadmapOracle Forms Modernization Roadmap
Oracle Forms Modernization Roadmap
 
BVT_Swamy_Abap_4
BVT_Swamy_Abap_4BVT_Swamy_Abap_4
BVT_Swamy_Abap_4
 
Arunprakash Alagesan
Arunprakash AlagesanArunprakash Alagesan
Arunprakash Alagesan
 
World Artificial Intelligence Conference Shanghai 2018
World Artificial Intelligence Conference Shanghai 2018World Artificial Intelligence Conference Shanghai 2018
World Artificial Intelligence Conference Shanghai 2018
 
JourneyToLowCode_2of4.pdf
JourneyToLowCode_2of4.pdfJourneyToLowCode_2of4.pdf
JourneyToLowCode_2of4.pdf
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 

Plus de CodeScience

Journey Through the AppExchange: Product-Led Growth with MagicRobot
Journey Through the AppExchange: Product-Led Growth with MagicRobotJourney Through the AppExchange: Product-Led Growth with MagicRobot
Journey Through the AppExchange: Product-Led Growth with MagicRobotCodeScience
 
Journey Through the AppExchange: From SI to ISV with Virsys12
Journey Through the AppExchange: From SI to ISV with Virsys12Journey Through the AppExchange: From SI to ISV with Virsys12
Journey Through the AppExchange: From SI to ISV with Virsys12CodeScience
 
Leveraging Dynamic Interactions on Salesforce Lightning Pages
Leveraging Dynamic Interactions on Salesforce Lightning PagesLeveraging Dynamic Interactions on Salesforce Lightning Pages
Leveraging Dynamic Interactions on Salesforce Lightning PagesCodeScience
 
Strategic Partnerships: The New Key to Innovation
Strategic Partnerships: The New Key to InnovationStrategic Partnerships: The New Key to Innovation
Strategic Partnerships: The New Key to InnovationCodeScience
 
Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...
Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...
Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...CodeScience
 
Designing Salesforce Platform Events
Designing Salesforce Platform EventsDesigning Salesforce Platform Events
Designing Salesforce Platform EventsCodeScience
 
Ready, Set, Launch: Accelerating Healthcare Innovation One App at a Time
Ready, Set, Launch: Accelerating Healthcare Innovation One App at a TimeReady, Set, Launch: Accelerating Healthcare Innovation One App at a Time
Ready, Set, Launch: Accelerating Healthcare Innovation One App at a TimeCodeScience
 
Journey Through the AppExchange: How Place Technology Created a New Category
Journey Through the AppExchange: How Place Technology Created a New CategoryJourney Through the AppExchange: How Place Technology Created a New Category
Journey Through the AppExchange: How Place Technology Created a New CategoryCodeScience
 
Journey to the AppExchange: How to Launch Into a New Ecosystem
Journey to the AppExchange: How to Launch Into a New EcosystemJourney to the AppExchange: How to Launch Into a New Ecosystem
Journey to the AppExchange: How to Launch Into a New EcosystemCodeScience
 
10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)
10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)
10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)CodeScience
 
Top 5 Ways to Build Pipeline With AppExchange Chat
Top 5 Ways to Build Pipeline With AppExchange ChatTop 5 Ways to Build Pipeline With AppExchange Chat
Top 5 Ways to Build Pipeline With AppExchange ChatCodeScience
 
Everything You Need to Know About Salesforce LMA & COA
Everything You Need to Know About Salesforce LMA & COAEverything You Need to Know About Salesforce LMA & COA
Everything You Need to Know About Salesforce LMA & COACodeScience
 
Streamline Page Layouts with Dynamic Forms
Streamline Page Layouts with Dynamic FormsStreamline Page Layouts with Dynamic Forms
Streamline Page Layouts with Dynamic FormsCodeScience
 
Getting to Yes: How to build executive alignment to win big on the AppExchange
Getting to Yes: How to build executive alignment to win big on the AppExchangeGetting to Yes: How to build executive alignment to win big on the AppExchange
Getting to Yes: How to build executive alignment to win big on the AppExchangeCodeScience
 
Org-dependent Unlocked Packages for ISVs
Org-dependent Unlocked Packages for ISVsOrg-dependent Unlocked Packages for ISVs
Org-dependent Unlocked Packages for ISVsCodeScience
 
Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...
Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...
Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...CodeScience
 
How FinancialForce Leverages Labs to Accelerate Innovation
How FinancialForce Leverages Labs to Accelerate InnovationHow FinancialForce Leverages Labs to Accelerate Innovation
How FinancialForce Leverages Labs to Accelerate InnovationCodeScience
 
Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...
Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...
Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...CodeScience
 
ISV Error Handling With Spring '21 Update
ISV Error Handling With Spring '21 UpdateISV Error Handling With Spring '21 Update
ISV Error Handling With Spring '21 UpdateCodeScience
 
Acting Like a Top 25 Salesforce ISV: Designing the Seller's Journey for the ...
Acting Like a Top 25 Salesforce ISV:  Designing the Seller's Journey for the ...Acting Like a Top 25 Salesforce ISV:  Designing the Seller's Journey for the ...
Acting Like a Top 25 Salesforce ISV: Designing the Seller's Journey for the ...CodeScience
 

Plus de CodeScience (20)

Journey Through the AppExchange: Product-Led Growth with MagicRobot
Journey Through the AppExchange: Product-Led Growth with MagicRobotJourney Through the AppExchange: Product-Led Growth with MagicRobot
Journey Through the AppExchange: Product-Led Growth with MagicRobot
 
Journey Through the AppExchange: From SI to ISV with Virsys12
Journey Through the AppExchange: From SI to ISV with Virsys12Journey Through the AppExchange: From SI to ISV with Virsys12
Journey Through the AppExchange: From SI to ISV with Virsys12
 
Leveraging Dynamic Interactions on Salesforce Lightning Pages
Leveraging Dynamic Interactions on Salesforce Lightning PagesLeveraging Dynamic Interactions on Salesforce Lightning Pages
Leveraging Dynamic Interactions on Salesforce Lightning Pages
 
Strategic Partnerships: The New Key to Innovation
Strategic Partnerships: The New Key to InnovationStrategic Partnerships: The New Key to Innovation
Strategic Partnerships: The New Key to Innovation
 
Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...
Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...
Journey Through the AppExchange: How inriver is Filling a Gap for Salesforce ...
 
Designing Salesforce Platform Events
Designing Salesforce Platform EventsDesigning Salesforce Platform Events
Designing Salesforce Platform Events
 
Ready, Set, Launch: Accelerating Healthcare Innovation One App at a Time
Ready, Set, Launch: Accelerating Healthcare Innovation One App at a TimeReady, Set, Launch: Accelerating Healthcare Innovation One App at a Time
Ready, Set, Launch: Accelerating Healthcare Innovation One App at a Time
 
Journey Through the AppExchange: How Place Technology Created a New Category
Journey Through the AppExchange: How Place Technology Created a New CategoryJourney Through the AppExchange: How Place Technology Created a New Category
Journey Through the AppExchange: How Place Technology Created a New Category
 
Journey to the AppExchange: How to Launch Into a New Ecosystem
Journey to the AppExchange: How to Launch Into a New EcosystemJourney to the AppExchange: How to Launch Into a New Ecosystem
Journey to the AppExchange: How to Launch Into a New Ecosystem
 
10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)
10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)
10 Tips to Pass Salesforce Security Review (and Steps to Take If You Don’t!)
 
Top 5 Ways to Build Pipeline With AppExchange Chat
Top 5 Ways to Build Pipeline With AppExchange ChatTop 5 Ways to Build Pipeline With AppExchange Chat
Top 5 Ways to Build Pipeline With AppExchange Chat
 
Everything You Need to Know About Salesforce LMA & COA
Everything You Need to Know About Salesforce LMA & COAEverything You Need to Know About Salesforce LMA & COA
Everything You Need to Know About Salesforce LMA & COA
 
Streamline Page Layouts with Dynamic Forms
Streamline Page Layouts with Dynamic FormsStreamline Page Layouts with Dynamic Forms
Streamline Page Layouts with Dynamic Forms
 
Getting to Yes: How to build executive alignment to win big on the AppExchange
Getting to Yes: How to build executive alignment to win big on the AppExchangeGetting to Yes: How to build executive alignment to win big on the AppExchange
Getting to Yes: How to build executive alignment to win big on the AppExchange
 
Org-dependent Unlocked Packages for ISVs
Org-dependent Unlocked Packages for ISVsOrg-dependent Unlocked Packages for ISVs
Org-dependent Unlocked Packages for ISVs
 
Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...
Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...
Ready, Set, Deploy: How Place Technology Streamlined Deployment on the AppExc...
 
How FinancialForce Leverages Labs to Accelerate Innovation
How FinancialForce Leverages Labs to Accelerate InnovationHow FinancialForce Leverages Labs to Accelerate Innovation
How FinancialForce Leverages Labs to Accelerate Innovation
 
Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...
Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...
Acting Like a Top 25 Salesforce ISV: How Appinium Applies Buyer's and Seller'...
 
ISV Error Handling With Spring '21 Update
ISV Error Handling With Spring '21 UpdateISV Error Handling With Spring '21 Update
ISV Error Handling With Spring '21 Update
 
Acting Like a Top 25 Salesforce ISV: Designing the Seller's Journey for the ...
Acting Like a Top 25 Salesforce ISV:  Designing the Seller's Journey for the ...Acting Like a Top 25 Salesforce ISV:  Designing the Seller's Journey for the ...
Acting Like a Top 25 Salesforce ISV: Designing the Seller's Journey for the ...
 

Dernier

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Dernier (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Platform Apps

  • 1.
  • 2. ● Who is CodeScience? ● Introductions ● Common Integration Patterns ● Integration Considerations & Pitfalls ● Leveraging a Custom Queue ● Recap Agenda
  • 3. Who is CodeScience? ● Founding partner of the Salesforce Product Development Organization (PDO) Program since 2008 - named Master PDO in 2017 ● We build Salesforce AppExchange solutions for our clients.
  • 4. Client success: 10% of the AppExchange
  • 7. Common Integration Patterns 6 commonly documented Salesforce integration patterns: ● Remote Process Invocation—Request and Reply (Apex callout) ● Remote Process Invocation—Fire and Forget (Platform Events / Outbound Messaging) ● Batch Data Synchronization (Middleware / Change Data Capture) ● Remote Call-In (REST API / SOAP API/custom Apex API) ● UI Update Based on Data Changes (Streaming API) ● Data Virtualization (Salesforce Connect) Each of these integration patterns has a good/better/best ranking for common integration scenarios and they also have significant limitations around guaranteed delivery, background execution, delayed processing, retry & exponential backoff strategies, or usability in logging & archival solutions. Let's talk about a reliable pattern that straddles the first three bullets and addresses some significant shortcomings...
  • 8. Integration Considerations & Pitfalls (1/2) With all integrations it is important to evaluate and plan for the level of resiliency that your solution requires. While some applications are unaffected by integration messages which have failed to be delivered, in others it may be imperative that every message be sent and acknowledged. ● Reporting: do you need to know how many records are awaiting processing? ● Monitoring: do you need the system to notify you when an integration appears to be having performance problems? ● Guaranteed Delivery: do you need to know that every message reached its destination? Kafka queues used by CDC and Platform Events do not have guaranteed message delivery. Your message has the possibility of silently not being published. ● Retry: Do you need the ability to retry an operation, potentially with a progressive backoff increasing the time between each successive retry? ● Object and Field limitations: which objects and field types do you need to integrate with? Some field types are not supported by all integration options. ● ...
  • 9. Integration Considerations & Pitfalls (2/2) With all integrations it is important to evaluate and plan for the level of resiliency that your solution requires. While some applications are unaffected by integration messages which have failed to be delivered, in others it may be imperative that every message be sent and acknowledged. ● … ● Chaining of Actions while processing: Do you have a complex orchestration that is best suited to be on-platform and includes a chained set of steps? ● Prioritization of Execution: Do you need to prioritize integration activities? High priority on-demand action by a user vs a lower priority job, etc. ● Scheduled Job limits: Are you concerned with the number of scheduled jobs your Salesforce org needs to operate? ● Message Duration: Are you concerned with the duration of integration messages? CDC: 3 days; Outbound Messages: 24 hours; Data Replication API: 30 days of actions / record id values; ● Delayed Processing: Do you need delayed processing of records by the integration which cannot be accommodated by Time Based Workflow Rules?
  • 10. Leveraging a Custom Queue Building a custom solution, which relies on data stored temporarily in an SObject, enables quite a few solutions to be designed to address the concerns in the previous list. It enables guaranteed delivery, retry behavior, prioritization, delayed processing of messages, custom interfaces, dynamic instantiation of custom 'workers' via queueables, background / asynchronous operations, and more.
  • 11. Benefits: ● Reliability - Data written to SObject records cannot be purged from a Salesforce queue such as the time based workflow queue can ● Scalability - SObject records control pending queue depth ● Reportability - Leverage standard platform reporting tools for queue analytics ● Retry-ability - Queue records can be reprocessed based on your own retry logic and errored out as necessary with error log details ● Notifications - Leverage standard platform tools such as email workflow rules to alert administrators when issues need to be addressed ● Flexibility - Any data format supported in queue item body, Any data format supported in worker classes ● Durability - Queueable job chaining allows the org to continue processing records infinitely until the queue is "empty" ● Security - Encryption of queue item payload at rest is possible in a managed package scenario where the encryption key can be protected Leveraging a Custom Queue
  • 12. Example Use Cases ● Error Logging - Write log records asynchronously to Big Objects ● Translation of record data - callout to Google translation to translate the value of a custom field into another language ● Address Verification - call out to address verification system to confirm and correct mailing address data ● Record enrichment - call out to SaaS endpoint for business info (in scheduled execution or on demand by a user) ● SMS delivery - call out to telecom service to deliver SMS messages ● Delayed sending of EMail messages ● Calling a remote API which does not support data in bulk or is fragile or frequently down, requires slower processing such as one record at a time
  • 13. High Level Design Pattern Let's look at a high-level design diagram of the application flow.
  • 14. Demo Let us see some code!
  • 15. The most significant benefit to the custom object + queue processor in apex solution is that you control your own delivery of messages to or from remote services and can implement it in any method you choose. You are able to implement your own guaranteed delivery mechanism. You are also able to take advantage of the numerous additional platform features as your solution demands. For instance, if you needed to guarantee delivery of a platform event, you could write to the custom queue when a record is modified and then let the queue item worker fire a platform event on your behalf at a later time. A subscriber could then write back to salesforce when the message is processed, removing the item from the queue. This abstraction allows you to introduce custom logic such as retries and sending administrative notifications when an item reaches an error state or receives no acknowledgement. Benefits
  • 16. The most significant limitation in this custom queue implementation is that it cannot currently handle a cascade delete scenario easily. Because the cascading actions do not fire triggers, process builders, flows, etc. that makes it extremely challenging to integrate with this implementation. The apex in a worker instance could query for recently deleted items with parent records in the queue item data - but this is still an imperfect solution since records may not be available in the recycle bin Limitations
  • 17. Recap What did we cover: - Salesforce standard integration solutions - Custom queue solution Do your due diligence. There is no one-size fits all solution to solve all integration needs. This custom queue implementation pattern has a very large number of possible use cases which it can help solve but it requires a fair amount of custom code. It centralizes a lot of functionality on the platform in apex which may not be the best choice for your business and your developer skills if you have deep expertise in other areas.