SlideShare a Scribd company logo
● 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

More Related Content

What's hot

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
Arun 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 Framework
Smart 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 Management
Linh 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 Configurator
Smart 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 World
Precisely
 
GuideIT High Level Consulting Framework
GuideIT High Level Consulting FrameworkGuideIT High Level Consulting Framework
GuideIT High Level Consulting Framework
Vision Concepts Infrastructure Services Solution
 
Checklist for artwork management software
Checklist for artwork management softwareChecklist for artwork management software
Checklist for artwork management software
Discus Business Solutions
 
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 way
Kris 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 solution
kanimozhin
 
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.1
Amit 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
 

What's hot (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
 

Similar to 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 deployments
Arup Dutta
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
Tapio Rautonen
 
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 abuzer
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
esebeus
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
Tapio Rautonen
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
kanimozhin
 
Microservice at a glance
Microservice at a glanceMicroservice at a glance
Microservice at a glance
Ketan Ghumatkar
 
Informatica 5+years of experince
Informatica 5+years of experinceInformatica 5+years of experince
Informatica 5+years of experince
Dharma Rao
 
Informatica 5+years of experince
Informatica 5+years of experinceInformatica 5+years of experince
Informatica 5+years of experince
Dharma Rao
 
Informatica_5+years of experince
Informatica_5+years of experinceInformatica_5+years of experince
Informatica_5+years of experinceDharma Rao
 
Going Serverless on AWS
Going Serverless on AWSGoing Serverless on AWS
Going Serverless on AWS
Aleksandr Maklakov
 
Oracle Forms Modernization Roadmap
Oracle Forms Modernization RoadmapOracle Forms Modernization Roadmap
Oracle Forms Modernization Roadmap
Kai-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 2018
Adam Gibson
 
JourneyToLowCode_2of4.pdf
JourneyToLowCode_2of4.pdfJourneyToLowCode_2of4.pdf
JourneyToLowCode_2of4.pdf
VaibhavVaidya30
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glanceTechcello
 

Similar to 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
 

More from 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 MagicRobot
CodeScience
 
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
CodeScience
 
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
CodeScience
 
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
CodeScience
 
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 Events
CodeScience
 
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
CodeScience
 
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
CodeScience
 
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
CodeScience
 
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 Chat
CodeScience
 
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
CodeScience
 
Streamline Page Layouts with Dynamic Forms
Streamline Page Layouts with Dynamic FormsStreamline Page Layouts with Dynamic Forms
Streamline Page Layouts with Dynamic Forms
CodeScience
 
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
CodeScience
 
Org-dependent Unlocked Packages for ISVs
Org-dependent Unlocked Packages for ISVsOrg-dependent Unlocked Packages for ISVs
Org-dependent Unlocked Packages for ISVs
CodeScience
 
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 Innovation
CodeScience
 
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 Update
CodeScience
 
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
 

More from 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 ...
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 

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.