Bypass Salesforce Limits
Using Platform Events
An awesome new tool for your utility belt
Founder
ARRNAV
Roy Gilad
Forward Looking Statement
Statement under the Private Securities Litigation Reform Act of 1995:
This presentation contains forward-looking statements about the company’s financial and operating results, which may include expected GAAP and non-GAAP financial and other operating and non-operating results,
including revenue, net income, diluted earnings per share, operating cash flow growth, operating margin improvement, expected revenue growth, expected current remaining performance obligation growth,
expected tax rates, the one-time accounting non-cash charge that was incurred in connection with the Salesforce.org combination; stock-based compensation expenses, amortization of purchased intangibles, shares
outstanding, market growth and sustainability goals. The achievement or success of the matters covered by such forward-looking statements involves risks, uncertainties and assumptions. If any such risks or
uncertainties materialize or if any of the assumptions prove incorrect, the company’s results could differ materially from the results expressed or implied by the forward-looking statements we make.
The risks and uncertainties referred to above include -- but are not limited to -- risks associated with the effect of general economic and market conditions; the impact of geopolitical events; the impact of foreign
currency exchange rate and interest rate fluctuations on our results; our business strategy and our plan to build our business, including our strategy to be the leading provider of enterprise cloud computing
applications and platforms; the pace of change and innovation in enterprise cloud computing services; the seasonal nature of our sales cycles; the competitive nature of the market in which we participate; our
international expansion strategy; the demands on our personnel and infrastructure resulting from significant growth in our customer base and operations, including as a result of acquisitions; our service
performance and security, including the resources and costs required to avoid unanticipated downtime and prevent, detect and remediate potential security breaches; the expenses associated with new data centers
and third-party infrastructure providers; additional data center capacity; real estate and office facilities space; our operating results and cash flows; new services and product features, including any efforts to expand
our services beyond the CRM market; our strategy of acquiring or making investments in complementary businesses, joint ventures, services, technologies and intellectual property rights; the performance and fair
value of our investments in complementary businesses through our strategic investment portfolio; our ability to realize the benefits from strategic partnerships, joint ventures and investments; the impact of future
gains or losses from our strategic investment portfolio, including gains or losses from overall market conditions that may affect the publicly traded companies within the company's strategic investment portfolio; our
ability to execute our business plans; our ability to successfully integrate acquired businesses and technologies, including delays related to the integration of Tableau due to regulatory review by the United Kingdom
Competition and Markets Authority; our ability to continue to grow unearned revenue and remaining performance obligation; our ability to protect our intellectual property rights; our ability to develop our brands;
our reliance on third-party hardware, software and platform providers; our dependency on the development and maintenance of the infrastructure of the Internet; the effect of evolving domestic and foreign
government regulations, including those related to the provision of services on the Internet, those related to accessing the Internet, and those addressing data privacy, cross-border data transfers and import and
export controls; the valuation of our deferred tax assets and the release of related valuation allowances; the potential availability of additional tax assets in the future; the impact of new accounting pronouncements
and tax laws; uncertainties affecting our ability to estimate our tax rate; the impact of expensing stock options and other equity awards; the sufficiency of our capital resources; factors related to our outstanding
debt, revolving credit facility, term loan and loan associated with 50 Fremont; compliance with our debt covenants and lease obligations; current and potential litigation involving us; and the impact of climate
change.
Further information on these and other factors that could affect the company’s financial results is included in the reports on Forms 10-K, 10-Q and 8-K and in other filings it makes with the Securities and Exchange
Commission from time to time. These documents are available on the SEC Filings section of the Investor Information section of the company’s website at www.salesforce.com/investor.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements, except as required by law.
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
What are Governor limits?
And why should we care?
Do more within Salesforce Governor Limits using Platform Events
Until now… Go Async!
What do we do when we hit a wall?
* Batch of Cookies!
Synchronous vs. Asynchronous
Synchronous
Execution
Synchronous vs. Asynchronous
User Experience Gap
But what if there was another way?
Do more within Salesforce Governor Limits using Platform Events
But what if there was another way?
Do more within Salesforce Governor Limits using Platform Events
But what if there was another way?
Do more within Salesforce Governor Limits using Platform Events
What are Platform Events?
Do more within Salesforce Governor Limits using Platform Events
What are Platform Events?
Do more within Salesforce Governor Limits using Platform Events
Enter Platform Events
Like a superpower you didn’t even know you had
Do more within Salesforce Governor Limits using Platform Events
SObjects__c Platform_Events__e
DMLs (Insert, Update, Delete) Publish (Insert only)
SOQL Streaming API
Triggers Subscribers
Parallel context execution Guaranteed order of execution
Enter Platform Events
Like a superpower you didn’t even know you had
Do more within Salesforce Governor Limits using Platform Events
Platform Events - Execution Timing
Like a superpower you didn’t even know you had
Do more within Salesforce Governor Limits using Platform Events
Platform Events - Execution Timing
Like a superpower you didn’t even know you had
Do more within Salesforce Governor Limits using Platform Events
1
2
3
Other Consideration
Like a superpower you didn’t even know you had
Do more within Salesforce Governor Limits using Platform Events
SYNCHRONOUS
Governor Limits
2000 > 200
Record per Transaction
CONTROL TRANSACTION SIZE
Dynamically break execution context
EventBus.TriggerContext.currentContext().setResumeCheckpoint(replayId);
Let’s roll up our sleeves and get our
hands on some Platform Events!
Scenario: Mixed DML in Declarative Development
As an administrator, John wants to use Salesforce to obtain and track approvals for
user’s role change. When a request for a role change is approved, he wants the
role to automatically be updated for the related user.
Solve real challenges
with Platform Events
Scenario: Mixed DML in Apex Code
As a developer, Jennifer was tasked to create code that, upon
approval of a Role Change Request, will add the user to a public
group with the same name as their new role, and remove them from
a public group with their old role name.
Admins and Developer
All LOVE Platform Events
Scenario: Chaining Multiple ASync processes
As an Architect, Maggie was tasked with designing a solution to
handle multiple large-volume transactions that have to occur when a
role-change is completed:
- Mass update all opportunities owned by the promoted user
- Recalculate commission payments
- Push opportunity owner updates to the company’s ERP
* The business does not want the 2nd and 3rd tasks to be
performed in sequence, but rather in parallel
Challenge: Salesforce only allows chaining one job at the
end of an async process
Scenario: Chaining Multiple ASync processes
Role Change
Get Opportunities
of Role Changed
Users
Get All User With
Previous Role
And Their
Capacity
Distribute
Opportunities
Based On
Capacity
Send Opps New
Owners to
Company’s ERP
Recalculate
Commissions
A few more use-cases
Platform Events Can Do
Even More!
● Multi-threaded processing
● Control the execution context size (number of records)
● Web Service Callouts from Platform Events*
● Re-usability of execution in a separate context
Trailmix: Getting Started With Platform Events
http://bit.ly/StartWithPE
Source Code: https://github.com/RoyGilad/Dreamforce-2019-Do-
more-within-Salesforce-Governor-Limits-using-Platform-Events
Documentation: Platform Events Developer Guide
Do more within Salesforce Governor Limits using Platform Events
Learn more about Platform Events
Founder
ARRNAV
@roygilad
linkedin.com/in/roygilad
roy@arrnav.com
Roy Gilad
Founder and CEO
Praxis LLC
@ohgodohad
linkedin.com/in/ohadidan
ohad@getpraxis.com
Ohad Idan
We’d love to hear from you!
Q & A

How to Use Salesforce Platform Events to Help With Salesforce Limits

  • 1.
    Bypass Salesforce Limits UsingPlatform Events An awesome new tool for your utility belt Founder ARRNAV Roy Gilad
  • 2.
    Forward Looking Statement Statementunder the Private Securities Litigation Reform Act of 1995: This presentation contains forward-looking statements about the company’s financial and operating results, which may include expected GAAP and non-GAAP financial and other operating and non-operating results, including revenue, net income, diluted earnings per share, operating cash flow growth, operating margin improvement, expected revenue growth, expected current remaining performance obligation growth, expected tax rates, the one-time accounting non-cash charge that was incurred in connection with the Salesforce.org combination; stock-based compensation expenses, amortization of purchased intangibles, shares outstanding, market growth and sustainability goals. The achievement or success of the matters covered by such forward-looking statements involves risks, uncertainties and assumptions. If any such risks or uncertainties materialize or if any of the assumptions prove incorrect, the company’s results could differ materially from the results expressed or implied by the forward-looking statements we make. The risks and uncertainties referred to above include -- but are not limited to -- risks associated with the effect of general economic and market conditions; the impact of geopolitical events; the impact of foreign currency exchange rate and interest rate fluctuations on our results; our business strategy and our plan to build our business, including our strategy to be the leading provider of enterprise cloud computing applications and platforms; the pace of change and innovation in enterprise cloud computing services; the seasonal nature of our sales cycles; the competitive nature of the market in which we participate; our international expansion strategy; the demands on our personnel and infrastructure resulting from significant growth in our customer base and operations, including as a result of acquisitions; our service performance and security, including the resources and costs required to avoid unanticipated downtime and prevent, detect and remediate potential security breaches; the expenses associated with new data centers and third-party infrastructure providers; additional data center capacity; real estate and office facilities space; our operating results and cash flows; new services and product features, including any efforts to expand our services beyond the CRM market; our strategy of acquiring or making investments in complementary businesses, joint ventures, services, technologies and intellectual property rights; the performance and fair value of our investments in complementary businesses through our strategic investment portfolio; our ability to realize the benefits from strategic partnerships, joint ventures and investments; the impact of future gains or losses from our strategic investment portfolio, including gains or losses from overall market conditions that may affect the publicly traded companies within the company's strategic investment portfolio; our ability to execute our business plans; our ability to successfully integrate acquired businesses and technologies, including delays related to the integration of Tableau due to regulatory review by the United Kingdom Competition and Markets Authority; our ability to continue to grow unearned revenue and remaining performance obligation; our ability to protect our intellectual property rights; our ability to develop our brands; our reliance on third-party hardware, software and platform providers; our dependency on the development and maintenance of the infrastructure of the Internet; the effect of evolving domestic and foreign government regulations, including those related to the provision of services on the Internet, those related to accessing the Internet, and those addressing data privacy, cross-border data transfers and import and export controls; the valuation of our deferred tax assets and the release of related valuation allowances; the potential availability of additional tax assets in the future; the impact of new accounting pronouncements and tax laws; uncertainties affecting our ability to estimate our tax rate; the impact of expensing stock options and other equity awards; the sufficiency of our capital resources; factors related to our outstanding debt, revolving credit facility, term loan and loan associated with 50 Fremont; compliance with our debt covenants and lease obligations; current and potential litigation involving us; and the impact of climate change. Further information on these and other factors that could affect the company’s financial results is included in the reports on Forms 10-K, 10-Q and 8-K and in other filings it makes with the Securities and Exchange Commission from time to time. These documents are available on the SEC Filings section of the Investor Information section of the company’s website at www.salesforce.com/investor. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements, except as required by law.
  • 3.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 4.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 5.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 6.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 7.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 8.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 9.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 10.
    What are Governorlimits? And why should we care? Do more within Salesforce Governor Limits using Platform Events
  • 11.
    Until now… GoAsync! What do we do when we hit a wall? * Batch of Cookies!
  • 12.
  • 13.
  • 14.
    But what ifthere was another way? Do more within Salesforce Governor Limits using Platform Events
  • 15.
    But what ifthere was another way? Do more within Salesforce Governor Limits using Platform Events
  • 16.
    But what ifthere was another way? Do more within Salesforce Governor Limits using Platform Events
  • 17.
    What are PlatformEvents? Do more within Salesforce Governor Limits using Platform Events
  • 18.
    What are PlatformEvents? Do more within Salesforce Governor Limits using Platform Events
  • 19.
    Enter Platform Events Likea superpower you didn’t even know you had Do more within Salesforce Governor Limits using Platform Events SObjects__c Platform_Events__e DMLs (Insert, Update, Delete) Publish (Insert only) SOQL Streaming API Triggers Subscribers Parallel context execution Guaranteed order of execution
  • 20.
    Enter Platform Events Likea superpower you didn’t even know you had Do more within Salesforce Governor Limits using Platform Events
  • 21.
    Platform Events -Execution Timing Like a superpower you didn’t even know you had Do more within Salesforce Governor Limits using Platform Events
  • 22.
    Platform Events -Execution Timing Like a superpower you didn’t even know you had Do more within Salesforce Governor Limits using Platform Events 1 2 3
  • 23.
    Other Consideration Like asuperpower you didn’t even know you had Do more within Salesforce Governor Limits using Platform Events SYNCHRONOUS Governor Limits 2000 > 200 Record per Transaction CONTROL TRANSACTION SIZE Dynamically break execution context EventBus.TriggerContext.currentContext().setResumeCheckpoint(replayId);
  • 24.
    Let’s roll upour sleeves and get our hands on some Platform Events!
  • 25.
    Scenario: Mixed DMLin Declarative Development As an administrator, John wants to use Salesforce to obtain and track approvals for user’s role change. When a request for a role change is approved, he wants the role to automatically be updated for the related user. Solve real challenges with Platform Events
  • 26.
    Scenario: Mixed DMLin Apex Code As a developer, Jennifer was tasked to create code that, upon approval of a Role Change Request, will add the user to a public group with the same name as their new role, and remove them from a public group with their old role name. Admins and Developer All LOVE Platform Events
  • 27.
    Scenario: Chaining MultipleASync processes As an Architect, Maggie was tasked with designing a solution to handle multiple large-volume transactions that have to occur when a role-change is completed: - Mass update all opportunities owned by the promoted user - Recalculate commission payments - Push opportunity owner updates to the company’s ERP * The business does not want the 2nd and 3rd tasks to be performed in sequence, but rather in parallel Challenge: Salesforce only allows chaining one job at the end of an async process
  • 28.
    Scenario: Chaining MultipleASync processes Role Change Get Opportunities of Role Changed Users Get All User With Previous Role And Their Capacity Distribute Opportunities Based On Capacity Send Opps New Owners to Company’s ERP Recalculate Commissions
  • 29.
    A few moreuse-cases Platform Events Can Do Even More! ● Multi-threaded processing ● Control the execution context size (number of records) ● Web Service Callouts from Platform Events* ● Re-usability of execution in a separate context
  • 30.
    Trailmix: Getting StartedWith Platform Events http://bit.ly/StartWithPE Source Code: https://github.com/RoyGilad/Dreamforce-2019-Do- more-within-Salesforce-Governor-Limits-using-Platform-Events Documentation: Platform Events Developer Guide Do more within Salesforce Governor Limits using Platform Events Learn more about Platform Events
  • 32.
    Founder ARRNAV @roygilad linkedin.com/in/roygilad roy@arrnav.com Roy Gilad Founder andCEO Praxis LLC @ohgodohad linkedin.com/in/ohadidan ohad@getpraxis.com Ohad Idan We’d love to hear from you!
  • 33.