SlideShare a Scribd company logo
1 of 27
Farmington Hills Salesforce Developer User
Group
Salesforce Apex Hours :-
Mitigate with Mono-Purpose Microservices
#SalesforceApexHours
#FarmingtonHillsSFDCDug
Speaker :- Don Robins (Salesforce MVP), Amit Chaudhary
Date :- Saturday, OCT 28, 2017 11:00 AM EST
Venue/Link :- Online
Who am I ?
Amit Chaudhary (Salesforce MVP)
• Active on Salesforce Developer Community
• Blogging at http://amitsalesforce.blogspot.in/
• Co-Organizer of :- FarmingtonHillsSFDCDug
Our Speaker
Don Robins
5x Salesforce MVP
Certified Instructor/PDII
Salesforce Training Partner
Training Team Lead
Pluralsight.com Author
Books, Posts, Articles
@donrobins
LinkedIn/In/DonaldRobins
Microservices
Agenda
▶ Microservices –WHAT, WHY, HOW
▶ My Microservice – PDFParser a practical mitigation use case
▶ Sample Microservice demo and code walk thru
▶ Take-aways and Links
Microservices
A typical perspective of Microservices in the enterprise:
▶ WHAT: an architectural approach allowing for the decoupling and dissolution of
monolithic application stacks
▶ WHY: promote scalable implementation, maintenance, and performance across
an application or suite of applications
▶ HOW: application functionality is broken up into stand-alone discreet services,
each doing one thing very well
Microservices
A Salesforce perspective of Microservices:
▶ WHAT: discreet service that does one thing only -- and does it very well!
▶ WHY: to perform a single specific function not available in Force.com
(ie. mitigation of unavailable capability)
▶ HOW: implemented service is deployed to and called from an isolated instance
on Heroku
Microservices
Perspectives on how the Force.com
platform provides a variety of built in
mechanisms that can ‘act’ as
Microservices.
https://developer.salesforce
.com/page/Wiki/Microservices
-And-The-Salesforce1-
Platform
In the Salesforce Technical Library:
“Microservices and The Salesforce1 Platform“
Microservices
When you can’t do something
that you need to do in
the environment that you’re in,
implement it somewhere else
and call it as a Microservice.
Microservices
Target Characteristics:
1. Should fulfill a single function
2. Should be light weight and independent of middleware
3. Should be accessed using consistent patterns
4. Should be written in the most efficient language for the task
Microservices
Target Capabilities:
1. Should accept input
2. Should return data
3. Can use synchronous or asynchronous protocol
Microservices
Synchronous vs Asynchronous:
▶ For Synchronous (<120 seconds) use REST (or SOAP)
which follows a standard http request/response pattern
▶ For Asynchronous (>120 seconds) use Platform Events (or other message
queue) which follows a pub/sub eventing pattern
▶ Use what’s easiest for YOU!
▶ Don’t confuse Sync/Async Service with Sync/Async Apex callout
My Problem: How to use a Microservice to Parse Data From a PDF
My Microservice
The overall solution will contain multiple moving parts:
1. Gmail email forwarding
2. Named Credential for the Service URL and authentication (if any)
3. Salesforce Email Service
4. Apex Email Handler Class
5. Apex Email Manager Class
6. Apex Remittance Manager Class with Inner Queueable Class
7. Apex Remittance Processor Classes
8. PDFParser Heroku RESTful Microservice
My Microservice: The Sequence
My Microservice: The Async Apex Callout
My Microservice: Step 1 – Insert Parent Record and PDF Attachment
My Microservice: Step 2 – Setup and Enqueue the Job
My Microservice: Step 3 – Instantiate the Queueable Class Instance With Data
My Microservice: Step 4 – Execution of the Queued Job Makes the Callout
My Microservice: The Service is a GO app
My Microservice: Testing The Service with Postman
My Microservice: DEMO
LET’S DIG INTO THE CODE!
▶ Demo the PDFParser Microservice with Postman
▶ Show the GO service code in the Github repo
▶ Walk through and run a simple example in Salesforce
TAKE-AWAYS…
Sample Source Code on Github:
▶ GIST MicroserviceManagerDemo.apxc (contains instructions)
https://gist.github.com/forcementor/81678cca6c1c67865307b4ba75cc9752
▶ GIST MicroserviceManager.apxc
https://gist.github.com/forcementor/754efb1e2a6cfbb42f087d38761c6a12
▶ REPO PDFParser Microservice
https://github.com/forcementor/pdf-convert.git
MORE TAKE-AWAYS…
Salesforce Learning Resources:
▶ Explore the Dreamhouse App
http://www.dreamhouseapp.io
▶ Explore the Dreamhouse Github Repo
https://github.com/dreamhouseapp
▶ Tackle the Trailhead Data Integration Superbadge!
https://trailhead.salesforce.com/en/super_badges/superbadge_in
tegration
EVEN MORE TAKE-AWAYS…
Video eLearning Content:
▶ Microservice-Based Architecture in the App Cloud (DF15)
Paul Battison MVP and Sean Harrison of Mavens Consulting
https://www.youtube.com/watch?v=9s05kWJC6mk
▶ Beyond the Monolith: Architecting Microservices Applications on Heroku
Scott Classen of Heroku
https://www.youtube.com/watch?v=anGekx48Y8s
▶ Pluralsight.com
Multiple courses on Microservices and supporting architecture and technology
Expanding Salesforce Library and the new “Play by Play” Series with MVPs and CTAs
(Free Trials Available)
https://www.pluralsight.com
Thank You
Thank you for attending the session.
Follow Farmington Hills SFDC Developer Group
Twitter Hashtag
#FarmingtonHillsSFDCDug
Meetup.com
https://www.meetup.com/Farmington-Hills-Salesforce-Developer-Meetup/
Facebook Page
https://www.facebook.com/FarmingtonHillsSfdcdug/?ref=bookmarks

More Related Content

What's hot

Creating MVC Application with backbone js
Creating MVC Application with backbone jsCreating MVC Application with backbone js
Creating MVC Application with backbone jsMindfire Solutions
 
Web Application Development Fundamentals
Web Application Development FundamentalsWeb Application Development Fundamentals
Web Application Development FundamentalsMohammed Makhlouf
 
Empowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for YourselfEmpowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for YourselfLinchpin
 
The A1 by Christian John Felix
The A1 by Christian John FelixThe A1 by Christian John Felix
The A1 by Christian John FelixDEVCON
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer ProductivityKushan Lahiru Perera
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project PresentationMilind Gokhale
 
Progressive Web Application - Advanced Topics
Progressive Web Application - Advanced TopicsProgressive Web Application - Advanced Topics
Progressive Web Application - Advanced TopicsHiren Dave
 
Building better WordPress applications
Building better WordPress applicationsBuilding better WordPress applications
Building better WordPress applicationsPhill Brown
 
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High GearASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High GearKevin Griffin
 
ASP.Net MVC ile Web Uygulamaları - 4(Model)
ASP.Net MVC ile Web Uygulamaları - 4(Model)ASP.Net MVC ile Web Uygulamaları - 4(Model)
ASP.Net MVC ile Web Uygulamaları - 4(Model)İbrahim ATAY
 
Tips for site builders and administrators
Tips for site builders and administratorsTips for site builders and administrators
Tips for site builders and administratorsTim Plummer
 
How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019]
How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019] How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019]
How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019] Sabrina Zeidan
 
JS Framework Comparison - An infographic
JS Framework Comparison - An infographicJS Framework Comparison - An infographic
JS Framework Comparison - An infographicInApp
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST APISimone D'Amico
 
7 must have word press plugins for web developers
7 must have word press plugins for web developers7 must have word press plugins for web developers
7 must have word press plugins for web developersHireWPGeeks Ltd
 

What's hot (18)

Creating MVC Application with backbone js
Creating MVC Application with backbone jsCreating MVC Application with backbone js
Creating MVC Application with backbone js
 
Web Application Development Fundamentals
Web Application Development FundamentalsWeb Application Development Fundamentals
Web Application Development Fundamentals
 
Empowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for YourselfEmpowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for Yourself
 
The A1 by Christian John Felix
The A1 by Christian John FelixThe A1 by Christian John Felix
The A1 by Christian John Felix
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer Productivity
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project Presentation
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Progressive Web Application - Advanced Topics
Progressive Web Application - Advanced TopicsProgressive Web Application - Advanced Topics
Progressive Web Application - Advanced Topics
 
Building better WordPress applications
Building better WordPress applicationsBuilding better WordPress applications
Building better WordPress applications
 
Introduction to CFEngine
Introduction to CFEngineIntroduction to CFEngine
Introduction to CFEngine
 
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High GearASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
 
ASP.Net MVC ile Web Uygulamaları - 4(Model)
ASP.Net MVC ile Web Uygulamaları - 4(Model)ASP.Net MVC ile Web Uygulamaları - 4(Model)
ASP.Net MVC ile Web Uygulamaları - 4(Model)
 
Tips for site builders and administrators
Tips for site builders and administratorsTips for site builders and administrators
Tips for site builders and administrators
 
Webforms or MVC
Webforms or MVCWebforms or MVC
Webforms or MVC
 
How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019]
How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019] How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019]
How to build lean SaaS App with WordPress Multisite [WordCamp Vienna 2019]
 
JS Framework Comparison - An infographic
JS Framework Comparison - An infographicJS Framework Comparison - An infographic
JS Framework Comparison - An infographic
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST API
 
7 must have word press plugins for web developers
7 must have word press plugins for web developers7 must have word press plugins for web developers
7 must have word press plugins for web developers
 

Similar to Salesforce Apex Hours:-Mitigate with Mono-Purpose Microservices

Webinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT StrategyWebinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT StrategyEdureka!
 
DevOps Dilemma - Make Dev work with Ops!
DevOps Dilemma - Make Dev work with Ops!DevOps Dilemma - Make Dev work with Ops!
DevOps Dilemma - Make Dev work with Ops!Sandeep Joshi
 
Dreamforce 2019 GG & Spring 20 release features - Halifax, Canada Community
Dreamforce 2019 GG & Spring 20 release features - Halifax, Canada CommunityDreamforce 2019 GG & Spring 20 release features - Halifax, Canada Community
Dreamforce 2019 GG & Spring 20 release features - Halifax, Canada CommunityPrag Ravichandran Kamalaveni (he/him)
 
Microsoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure BootcampMicrosoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure BootcampHeather Newman
 
Automation and delegation of exchange and office 365 adminstrative tasks with...
Automation and delegation of exchange and office 365 adminstrative tasks with...Automation and delegation of exchange and office 365 adminstrative tasks with...
Automation and delegation of exchange and office 365 adminstrative tasks with...Heiko Brenn
 
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...Sandro Pereira
 
Flamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel PötzingerFlamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel PötzingerAOE
 
01 #awesome admin tdx19 global gatherings highlights for admins final
01 #awesome admin   tdx19 global gatherings highlights for admins final01 #awesome admin   tdx19 global gatherings highlights for admins final
01 #awesome admin tdx19 global gatherings highlights for admins finalszurley
 
The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps JourneyC4Media
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition3scale
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionSteven Willmott
 
How can Power Apps and Microsoft Flow allow your Power Users to quickly build...
How can Power Apps and Microsoft Flow allow your Power Users to quickly build...How can Power Apps and Microsoft Flow allow your Power Users to quickly build...
How can Power Apps and Microsoft Flow allow your Power Users to quickly build...BizTalk360
 
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...VMware Tanzu
 
Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022Daniel Soffner
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
DevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampDevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampRichard Harbridge
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Oleg Tsal-Tsalko
 

Similar to Salesforce Apex Hours:-Mitigate with Mono-Purpose Microservices (20)

Webinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT StrategyWebinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT Strategy
 
DevOps Dilemma - Make Dev work with Ops!
DevOps Dilemma - Make Dev work with Ops!DevOps Dilemma - Make Dev work with Ops!
DevOps Dilemma - Make Dev work with Ops!
 
Dreamforce 2019 GG & Spring 20 release features - Halifax, Canada Community
Dreamforce 2019 GG & Spring 20 release features - Halifax, Canada CommunityDreamforce 2019 GG & Spring 20 release features - Halifax, Canada Community
Dreamforce 2019 GG & Spring 20 release features - Halifax, Canada Community
 
Microsoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure BootcampMicrosoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure Bootcamp
 
Automation and delegation of exchange and office 365 adminstrative tasks with...
Automation and delegation of exchange and office 365 adminstrative tasks with...Automation and delegation of exchange and office 365 adminstrative tasks with...
Automation and delegation of exchange and office 365 adminstrative tasks with...
 
MicroForntends.pdf
MicroForntends.pdfMicroForntends.pdf
MicroForntends.pdf
 
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
 
Flamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel PötzingerFlamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel Pötzinger
 
01 #awesome admin tdx19 global gatherings highlights for admins final
01 #awesome admin   tdx19 global gatherings highlights for admins final01 #awesome admin   tdx19 global gatherings highlights for admins final
01 #awesome admin tdx19 global gatherings highlights for admins final
 
The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps Journey
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
Applications Report
Applications ReportApplications Report
Applications Report
 
How can Power Apps and Microsoft Flow allow your Power Users to quickly build...
How can Power Apps and Microsoft Flow allow your Power Users to quickly build...How can Power Apps and Microsoft Flow allow your Power Users to quickly build...
How can Power Apps and Microsoft Flow allow your Power Users to quickly build...
 
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
 
Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
DevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampDevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure Bootcamp
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData
 

More from Amit Chaudhary

Apex code Benchmarking
Apex code BenchmarkingApex code Benchmarking
Apex code BenchmarkingAmit Chaudhary
 
Empower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipelineEmpower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipelineAmit Chaudhary
 
Marketing cloud development
Marketing cloud developmentMarketing cloud development
Marketing cloud developmentAmit Chaudhary
 
Salesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceSalesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceAmit Chaudhary
 
Modular application development using unlocked packages
Modular application development using unlocked packagesModular application development using unlocked packages
Modular application development using unlocked packagesAmit Chaudhary
 
Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)Amit Chaudhary
 
Lightning web components
Lightning web componentsLightning web components
Lightning web componentsAmit Chaudhary
 
Lightning web components
Lightning web componentsLightning web components
Lightning web componentsAmit Chaudhary
 
Lightning Locker Services
Lightning Locker ServicesLightning Locker Services
Lightning Locker ServicesAmit Chaudhary
 
Salesforce apex hours heroku connect - deep dive
Salesforce apex hours   heroku connect - deep diveSalesforce apex hours   heroku connect - deep dive
Salesforce apex hours heroku connect - deep diveAmit Chaudhary
 
Salesforce apex hours :- azure active directory seamless single sign-on with...
Salesforce apex hours  :- azure active directory seamless single sign-on with...Salesforce apex hours  :- azure active directory seamless single sign-on with...
Salesforce apex hours :- azure active directory seamless single sign-on with...Amit Chaudhary
 
Salesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch OrgSalesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch OrgAmit Chaudhary
 
Einstein Analytics Part 2
Einstein Analytics Part 2Einstein Analytics Part 2
Einstein Analytics Part 2Amit Chaudhary
 
Demystifying the salesforce reports api
Demystifying the salesforce reports apiDemystifying the salesforce reports api
Demystifying the salesforce reports apiAmit Chaudhary
 
Salesforce apex hours Einstein platform services
Salesforce apex hours   Einstein platform servicesSalesforce apex hours   Einstein platform services
Salesforce apex hours Einstein platform servicesAmit Chaudhary
 
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDVSalesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDVAmit Chaudhary
 

More from Amit Chaudhary (20)

Platform cache
Platform cachePlatform cache
Platform cache
 
Apex code Benchmarking
Apex code BenchmarkingApex code Benchmarking
Apex code Benchmarking
 
Empower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipelineEmpower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipeline
 
Marketing cloud development
Marketing cloud developmentMarketing cloud development
Marketing cloud development
 
Salesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceSalesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforce
 
Modular application development using unlocked packages
Modular application development using unlocked packagesModular application development using unlocked packages
Modular application development using unlocked packages
 
Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)
 
Pardot basics
Pardot basicsPardot basics
Pardot basics
 
Lightning web components
Lightning web componentsLightning web components
Lightning web components
 
Lightning web components
Lightning web componentsLightning web components
Lightning web components
 
Lightning Locker Services
Lightning Locker ServicesLightning Locker Services
Lightning Locker Services
 
Salesforce apex hours heroku connect - deep dive
Salesforce apex hours   heroku connect - deep diveSalesforce apex hours   heroku connect - deep dive
Salesforce apex hours heroku connect - deep dive
 
Salesforce apex hours :- azure active directory seamless single sign-on with...
Salesforce apex hours  :- azure active directory seamless single sign-on with...Salesforce apex hours  :- azure active directory seamless single sign-on with...
Salesforce apex hours :- azure active directory seamless single sign-on with...
 
Salesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch OrgSalesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch Org
 
Einstein Analytics Part 2
Einstein Analytics Part 2Einstein Analytics Part 2
Einstein Analytics Part 2
 
Einstein Analytics
Einstein Analytics Einstein Analytics
Einstein Analytics
 
Demystifying the salesforce reports api
Demystifying the salesforce reports apiDemystifying the salesforce reports api
Demystifying the salesforce reports api
 
Salesforce apex hours Einstein platform services
Salesforce apex hours   Einstein platform servicesSalesforce apex hours   Einstein platform services
Salesforce apex hours Einstein platform services
 
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDVSalesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
 
Einstein bots
Einstein botsEinstein bots
Einstein bots
 

Recently uploaded

Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...anjaliyadav012327
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 

Recently uploaded (20)

Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 

Salesforce Apex Hours:-Mitigate with Mono-Purpose Microservices

  • 1. Farmington Hills Salesforce Developer User Group Salesforce Apex Hours :- Mitigate with Mono-Purpose Microservices #SalesforceApexHours #FarmingtonHillsSFDCDug Speaker :- Don Robins (Salesforce MVP), Amit Chaudhary Date :- Saturday, OCT 28, 2017 11:00 AM EST Venue/Link :- Online
  • 2. Who am I ? Amit Chaudhary (Salesforce MVP) • Active on Salesforce Developer Community • Blogging at http://amitsalesforce.blogspot.in/ • Co-Organizer of :- FarmingtonHillsSFDCDug
  • 3. Our Speaker Don Robins 5x Salesforce MVP Certified Instructor/PDII Salesforce Training Partner Training Team Lead Pluralsight.com Author Books, Posts, Articles @donrobins LinkedIn/In/DonaldRobins
  • 4. Microservices Agenda ▶ Microservices –WHAT, WHY, HOW ▶ My Microservice – PDFParser a practical mitigation use case ▶ Sample Microservice demo and code walk thru ▶ Take-aways and Links
  • 5. Microservices A typical perspective of Microservices in the enterprise: ▶ WHAT: an architectural approach allowing for the decoupling and dissolution of monolithic application stacks ▶ WHY: promote scalable implementation, maintenance, and performance across an application or suite of applications ▶ HOW: application functionality is broken up into stand-alone discreet services, each doing one thing very well
  • 6. Microservices A Salesforce perspective of Microservices: ▶ WHAT: discreet service that does one thing only -- and does it very well! ▶ WHY: to perform a single specific function not available in Force.com (ie. mitigation of unavailable capability) ▶ HOW: implemented service is deployed to and called from an isolated instance on Heroku
  • 7. Microservices Perspectives on how the Force.com platform provides a variety of built in mechanisms that can ‘act’ as Microservices. https://developer.salesforce .com/page/Wiki/Microservices -And-The-Salesforce1- Platform In the Salesforce Technical Library: “Microservices and The Salesforce1 Platform“
  • 8. Microservices When you can’t do something that you need to do in the environment that you’re in, implement it somewhere else and call it as a Microservice.
  • 9. Microservices Target Characteristics: 1. Should fulfill a single function 2. Should be light weight and independent of middleware 3. Should be accessed using consistent patterns 4. Should be written in the most efficient language for the task
  • 10. Microservices Target Capabilities: 1. Should accept input 2. Should return data 3. Can use synchronous or asynchronous protocol
  • 11. Microservices Synchronous vs Asynchronous: ▶ For Synchronous (<120 seconds) use REST (or SOAP) which follows a standard http request/response pattern ▶ For Asynchronous (>120 seconds) use Platform Events (or other message queue) which follows a pub/sub eventing pattern ▶ Use what’s easiest for YOU! ▶ Don’t confuse Sync/Async Service with Sync/Async Apex callout
  • 12. My Problem: How to use a Microservice to Parse Data From a PDF
  • 13. My Microservice The overall solution will contain multiple moving parts: 1. Gmail email forwarding 2. Named Credential for the Service URL and authentication (if any) 3. Salesforce Email Service 4. Apex Email Handler Class 5. Apex Email Manager Class 6. Apex Remittance Manager Class with Inner Queueable Class 7. Apex Remittance Processor Classes 8. PDFParser Heroku RESTful Microservice
  • 15. My Microservice: The Async Apex Callout
  • 16. My Microservice: Step 1 – Insert Parent Record and PDF Attachment
  • 17. My Microservice: Step 2 – Setup and Enqueue the Job
  • 18. My Microservice: Step 3 – Instantiate the Queueable Class Instance With Data
  • 19. My Microservice: Step 4 – Execution of the Queued Job Makes the Callout
  • 20. My Microservice: The Service is a GO app
  • 21. My Microservice: Testing The Service with Postman
  • 22. My Microservice: DEMO LET’S DIG INTO THE CODE! ▶ Demo the PDFParser Microservice with Postman ▶ Show the GO service code in the Github repo ▶ Walk through and run a simple example in Salesforce
  • 23. TAKE-AWAYS… Sample Source Code on Github: ▶ GIST MicroserviceManagerDemo.apxc (contains instructions) https://gist.github.com/forcementor/81678cca6c1c67865307b4ba75cc9752 ▶ GIST MicroserviceManager.apxc https://gist.github.com/forcementor/754efb1e2a6cfbb42f087d38761c6a12 ▶ REPO PDFParser Microservice https://github.com/forcementor/pdf-convert.git
  • 24. MORE TAKE-AWAYS… Salesforce Learning Resources: ▶ Explore the Dreamhouse App http://www.dreamhouseapp.io ▶ Explore the Dreamhouse Github Repo https://github.com/dreamhouseapp ▶ Tackle the Trailhead Data Integration Superbadge! https://trailhead.salesforce.com/en/super_badges/superbadge_in tegration
  • 25. EVEN MORE TAKE-AWAYS… Video eLearning Content: ▶ Microservice-Based Architecture in the App Cloud (DF15) Paul Battison MVP and Sean Harrison of Mavens Consulting https://www.youtube.com/watch?v=9s05kWJC6mk ▶ Beyond the Monolith: Architecting Microservices Applications on Heroku Scott Classen of Heroku https://www.youtube.com/watch?v=anGekx48Y8s ▶ Pluralsight.com Multiple courses on Microservices and supporting architecture and technology Expanding Salesforce Library and the new “Play by Play” Series with MVPs and CTAs (Free Trials Available) https://www.pluralsight.com
  • 26. Thank You Thank you for attending the session.
  • 27. Follow Farmington Hills SFDC Developer Group Twitter Hashtag #FarmingtonHillsSFDCDug Meetup.com https://www.meetup.com/Farmington-Hills-Salesforce-Developer-Meetup/ Facebook Page https://www.facebook.com/FarmingtonHillsSfdcdug/?ref=bookmarks