SlideShare a Scribd company logo
1 of 49
Download to read offline
Boxcars and
Cabooses
When one more XHR is too much
Peter Chittum
Developer Evangelist
@pchittum
github.com/pchittum
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if
any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-
looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of
product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments
and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our
service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth,
interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any
possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and
motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-
salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial
results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for
the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor
Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may
not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently
available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
The Goal
​ Suggest design principles
​ Try Salesforce platform
​ Lots of Salesforce projects looking for developers
Salesforce Background
​ Business and Enterprise Application Platform Company
Sales
Service
Marketing
CommunityApps
Analytics
Bulk
REST
Metadata
SOAP
Tooling
Streaming
INTEGRATIONLAYER
Point & Click
Integration
Tools
Page
Builder
DECLARATIVE DEVELOPMENT
GLOBAL ENTERPRISE CLOUD INFRASTRUCTURE
PLATFORM SERVICES
APP MANAGEMENT & DEPLOYMENT
Workflow
Engine
UI
Framework
Sharing &
Permissions
Global
Search
Reports &
Dashboards
Files
& Content
Authenticatio
n
CollaborationEvent Log
Framework
Translation
Workbench
App
Builder
Process
Builder
Schema
Builder
Multi-Tenant Network
& Firewall
Auto
Updates
Backup &
Geodiversity
Security Trust
IDECLI Agile
Accelerator
Store
Builder
Dev
Console
Sandbox
Metadata
Heroku DX node.js
PROGRAMMATIC DEVELOPMENT
Database Smart
Containers
Heroku
Add-ons
Heroku
Button
Ruby
Identity
Global
Data Centers
Data
Storage
Single code
base
Python Java APEXPHP
Offline
Salesforce1 Mobile
Container
Geolocation
Push
Notifications
SDK Mobile Identity
MOBILE SERVICES
Community
Builder
Page
Builder
Everything You Need to Build Apps
​ Full spectrum of capabilities from enterprise control to
elastic flexibility
Agile and elastic platform that developers love
Smarter infrastructure lets you build apps that scale
Open and extensible
Modern language support and ecosystem of 150+ add-ons
Connected to Force.com
Sync customer apps with business processes
Build Customer-Facing Apps with Heroku
HR Help Desk
Employee Intranet
Recruiting &
Onboarding
Performance
& Coaching
IT Help Desk / Self-
Service Community
Legacy Applications
Consolidation
Enterprise
Knowledge
Identity Mgmt
Custom Web /
Mobile Applications
Business Agility
Layer (e.g. Claims,
Underwriting, …)
Asset & Facilities
Management
Financial Shared
Services
M&A Enablement
Early Warning
Management
Product Ideas &
Innovation
Pre-Production
Testing
Warrant Coverage
Decisioning
Procurement
Vendor
Management
Transportation
Logistics
Contract
Management
Budget
Management
Contract
Management
Pricing
Billing
Management
Audit
Management
Force.com - Employee Facing Apps
​ 
Apps
HR
Produc
t
Supply
Chain
IT
Financ
e
Ops
Multi Tenant
>150k customers
40 Prod POD’s
40 Prod DB’s
Core Force.com Characteristics
​ Single Code Base
​ Single Schema
​ 3 Upgrades Per Year
​ Secure
​ Durable and Scalable
​ Customizable
​ Easy enough for a Business Analyst
​ Flexible enough for a Coder
Pre-Built Apps
​ AppExchange is the #1 Business App Marketplace
Customized for Salesforce
Trusted and Secure
Reviewed by Peers
Over 2,800 apps 3 million installs
​ Overall site peak day
•  >3.5 Billion transactions
•  200 milliseconds average
•  60% of transactions via API
requests
​ Typically production instance
•  >8,000 Customer Orgs
•  30 App Servers and 8 DB Servers
Salesforce’s Daily Performance
Friday: 3,173,762,799 Transactions
3 Releases Per Year
API backward compatibility ensures ease of deployment
47 Major Releases
100’s of Small Releases Yearly
All Integrations and
Customizations Auto-Upgraded
6BLines of
Apex Code
1BAPI Calls
Per Day,
32
versions
12M
Visualforce
Pages
15MCustom
Database
Tables
1
Version
The Composite App
The Client Problem
Problem: Old Custom UI Technology
​ Server-side generated, page based HTML
HTML
<div>...</div>
New UI: Component-based Client-rendered
JSON
component:{...}
<div>...</div>
Aura and Lightning Component Framework
Lightning
Component
Framework
Lightning Component Design Principles
•  Component author namespacing
•  Automatic component-based CSS namespacing
•  Everything is a component
•  Allow for programmatic or point-and-click UI composition
•  Enable Salesforce, customers, and partners to build composite UIs
•  Works on any form factor
Many Components Many Server Trips
XMLHttpRequest
XMLHttpRequest
XMLHttpRequest
Actions: Interact with the Server
•  Apex Method Surfaced to Lightning Components
•  @AuraEnabled annotation
Boxcarring: Many Actions, One XHR
ActionService
Caboose: Postpone High Volume Actions
ActionService
•  Defer High-Volume Actions
•  Action.setCaboose()
Action Service: Server Side API
​ Apex: Code on Force.com
Action Service Client API
Demo
Possible Future Features
​ Making actions cacheable
​ Ability to prioritize actions
What About the API
Comprehensive Suite of APIs and Toolkits
Web Service
Endpoint
Web Service
Endpoint
Apex
WS/REST
Outbound
Messaging
Business Logic
Sync Bulk API
Streaming
API Topic
CRUD
Data
Bayeux
Client
Applications and Middleware
Java SDK Ruby gem
PHP
Toolkit
Mobile
SDK
Mobile
SDK
3rd Party
Adapters
Apex
Callouts
Salesforce1 Enterprise APIs
​ The Salesforce “Data” APIs
•  Allow programmatic access to your salesforce data through various API technologies
•  Many different APIs to suit your specific needs
Rest
APIs
Access and manipulate data with a RESTful pattern with JSON and XML payloads
Soap
APIs
Access and manipulate data using SOAP.
Streaming
APIs
Subscribe to updates using a Bayeux / CometD HTTP Streaming API.
Bulk
APIs
Perform Bulk Queries and Inserts/Updates Asynchronously.
Boxcarring, what a great idea!
​ Boxcarring is dependent on Lightning Components
​ Only works with one client interface
​ What about all those API apps out there?
​ If only we could let any client batch together requests…
Many Requests Many Server Trips
POST Record
GET Server Gen Data
GET API Limits
Composite Batch REST API
.../composite/batch
POST Batch
{
"batchRequests":[
{POST},
{GET},
{GET}
]
}
Sample Batch Request
​ POST: <salesforcedomain>/services/data/v35.0/composite/batch
​ {"batchRequests" : [
​  {"method" : "POST",
​  "url" : "v35.0/sobjects/account/",
​  "richInput" : {"Name" : "NewName", "Industry" : "Tech"}},
​  {"method" : "GET",
​  "url" : "v35.0/sobjects/account/describe/"},
​  {"method" : "GET",
​  "url" : "v35.0/query?q=select id, name, industry from account
​ order by createddate desc limit 10"
​  }]
​ }
Parent/Child Related Data
POST Account
POST related Contacts
POST related Cases
RESP: Account ID
RESP: Contact IDs
RESP: Case IDs
Composite Tree REST API
.../composite/tree/entity
POST Tree
”records":[
{parent1},
{parent2},
{parent3}
]
Sample Batch Request
​ POST: <salesforcedomain>/services/data/v35.0/composite/tree/Account
​ {"records" :[
​  {"attributes": {"type":"Account", "referenceId":"ref1"},
​  "name" : "SampleAccount", "phone" : "1234567890",
​  "type" : "Analyst", "industry" : "Banking",
​  "Contacts" : {
​  "records" : [
​  {"attributes": {"type":"Contact", "referenceId":"ref2"},
​  "lastname" : "Smith", "title" : "President"},
​  ...]},
​  "Cases" : {
​  "records" : [
​  {"attributes": {"type":"Case", "referenceId":"ref3"},
​  "" : "", "" : "", "" : ""}
​  ...]}, }}, ...] }
Demo
Possible Future Features
​ Parameter-based values
​ Basic Orchestration
​ Updates on /tree
Free Developer Edition of Force.com
​ http://bit.ly/webcamp-salesforce
developer.salesforce.com/trailhead
Q & A
Peter Chittum
Developer Evangelist
@pchittum
github.com/pchittum
​ Signup: http://bit.ly/webcamp-salesforce
​ Learn: https://developer.salesforce.com/trailhead
RATE ME!
https://joind.in/15243
Thank
you

More Related Content

What's hot

What's hot (20)

Build your API with Force.com and Heroku
Build your API with Force.com and HerokuBuild your API with Force.com and Heroku
Build your API with Force.com and Heroku
 
Salesforce Spring'20 Features
Salesforce Spring'20 FeaturesSalesforce Spring'20 Features
Salesforce Spring'20 Features
 
Bringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce ConnectBringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce Connect
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
 
Durable Streaming and Enterprise Messaging
Durable Streaming and Enterprise MessagingDurable Streaming and Enterprise Messaging
Durable Streaming and Enterprise Messaging
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
 
I T E003 Shih 091707
I T E003  Shih 091707I T E003  Shih 091707
I T E003 Shih 091707
 
Unleash the Potential of Big Data on Salesforce
Unleash the Potential of Big Data on SalesforceUnleash the Potential of Big Data on Salesforce
Unleash the Potential of Big Data on Salesforce
 
I T E005 Kelman 091807
I T E005  Kelman 091807I T E005  Kelman 091807
I T E005 Kelman 091807
 
Modeling and Querying Data and Relationships in Salesforce
Modeling and Querying Data and Relationships in SalesforceModeling and Querying Data and Relationships in Salesforce
Modeling and Querying Data and Relationships in Salesforce
 
Enterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the FieldEnterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the Field
 
Salesforce for Platform
Salesforce for PlatformSalesforce for Platform
Salesforce for Platform
 
You've Changed: Field Audit Trails and the Salesforce Time Machine
You've Changed: Field Audit Trails and the Salesforce Time MachineYou've Changed: Field Audit Trails and the Salesforce Time Machine
You've Changed: Field Audit Trails and the Salesforce Time Machine
 
Event Monitoring: Use Powerful Insights to Improve Performance and Security
Event Monitoring: Use Powerful Insights to Improve Performance and SecurityEvent Monitoring: Use Powerful Insights to Improve Performance and Security
Event Monitoring: Use Powerful Insights to Improve Performance and Security
 
Salesforce Integration Best Practices: How to Avoid SaaS Silos
Salesforce Integration Best Practices: How to Avoid SaaS SilosSalesforce Integration Best Practices: How to Avoid SaaS Silos
Salesforce Integration Best Practices: How to Avoid SaaS Silos
 
Developing on the Salesforce Platform With Clicks, Not Code
Developing on the Salesforce Platform With Clicks, Not CodeDeveloping on the Salesforce Platform With Clicks, Not Code
Developing on the Salesforce Platform With Clicks, Not Code
 
Developers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 PlatformDevelopers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 Platform
 
Developer Tour on the Salesforce1 Platform
Developer Tour on the Salesforce1 PlatformDeveloper Tour on the Salesforce1 Platform
Developer Tour on the Salesforce1 Platform
 
Understanding Salesforce Streaming API
Understanding Salesforce Streaming APIUnderstanding Salesforce Streaming API
Understanding Salesforce Streaming API
 
Let's Learn About Heroku and How to Integrate with Salesforce
Let's Learn About Heroku and How to Integrate with SalesforceLet's Learn About Heroku and How to Integrate with Salesforce
Let's Learn About Heroku and How to Integrate with Salesforce
 

Viewers also liked (17)

Resume
Resume Resume
Resume
 
Curriculum vitae
Curriculum vitaeCurriculum vitae
Curriculum vitae
 
Untitled document
Untitled documentUntitled document
Untitled document
 
Practica 3
Practica 3Practica 3
Practica 3
 
After prayer
After prayerAfter prayer
After prayer
 
Make Fruit Shakes for Health sake
Make Fruit Shakes for Health sakeMake Fruit Shakes for Health sake
Make Fruit Shakes for Health sake
 
ARTE MEDIEVAL - ESCULTURAS ROMÁNICAS Y GÓTICAS
ARTE MEDIEVAL - ESCULTURAS ROMÁNICAS Y GÓTICASARTE MEDIEVAL - ESCULTURAS ROMÁNICAS Y GÓTICAS
ARTE MEDIEVAL - ESCULTURAS ROMÁNICAS Y GÓTICAS
 
Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016
 
Ipad 2 15gb
Ipad 2 15gbIpad 2 15gb
Ipad 2 15gb
 
65
6565
65
 
Udhumaniya Primary School
Udhumaniya Primary SchoolUdhumaniya Primary School
Udhumaniya Primary School
 
50
5050
50
 
3.1 MFI Staff Management Skills Part1
3.1 MFI Staff Management Skills Part13.1 MFI Staff Management Skills Part1
3.1 MFI Staff Management Skills Part1
 
Teaching Grammar and Vocabulary
Teaching Grammar and VocabularyTeaching Grammar and Vocabulary
Teaching Grammar and Vocabulary
 
Business Communication, Skill & Its Barriers
Business Communication, Skill & Its BarriersBusiness Communication, Skill & Its Barriers
Business Communication, Skill & Its Barriers
 
Communication skill
Communication skillCommunication skill
Communication skill
 
Vighnesh_Naik_Resume_DevOps
Vighnesh_Naik_Resume_DevOpsVighnesh_Naik_Resume_DevOps
Vighnesh_Naik_Resume_DevOps
 

Similar to Boxcars and Cabooses: When One More XHR Is Too Much

Business Mashups Best of the Web APIs
Business Mashups Best of the Web APIsBusiness Mashups Best of the Web APIs
Business Mashups Best of the Web APIs
dreamforce2006
 
2. 8 things that will make your business love your developers again
2. 8 things that will make your business love your developers again2. 8 things that will make your business love your developers again
2. 8 things that will make your business love your developers again
EuroCloud
 
Next-Generation Native Apps
Next-Generation Native AppsNext-Generation Native Apps
Next-Generation Native Apps
dreamforce2006
 
Integration Strategies in a SaaS Environment
Integration Strategies in a SaaS EnvironmentIntegration Strategies in a SaaS Environment
Integration Strategies in a SaaS Environment
dreamforce2006
 
CCT London 2013 Theatre Intro to Apex
CCT London 2013 Theatre Intro to ApexCCT London 2013 Theatre Intro to Apex
CCT London 2013 Theatre Intro to Apex
Peter Chittum
 

Similar to Boxcars and Cabooses: When One More XHR Is Too Much (20)

Modern Architectures: Integration Stories from the Field
Modern Architectures: Integration Stories from the FieldModern Architectures: Integration Stories from the Field
Modern Architectures: Integration Stories from the Field
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
 
Salesforce platform session 2
 Salesforce platform session 2 Salesforce platform session 2
Salesforce platform session 2
 
Streaming API with Java
Streaming API with JavaStreaming API with Java
Streaming API with Java
 
MuleSoftマイクロサービスとデプロイメントパターン
MuleSoftマイクロサービスとデプロイメントパターンMuleSoftマイクロサービスとデプロイメントパターン
MuleSoftマイクロサービスとデプロイメントパターン
 
Integrating with salesforce
Integrating with salesforceIntegrating with salesforce
Integrating with salesforce
 
Business Mashups Best of the Web APIs
Business Mashups Best of the Web APIsBusiness Mashups Best of the Web APIs
Business Mashups Best of the Web APIs
 
[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum
 
Sharing APIs at Scale for a Great Developer Experience
Sharing APIs at Scale for a Great Developer ExperienceSharing APIs at Scale for a Great Developer Experience
Sharing APIs at Scale for a Great Developer Experience
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 
Transforming Your Business in the "Cloud" with Callidus Software and Salesfor...
Transforming Your Business in the "Cloud" with Callidus Software and Salesfor...Transforming Your Business in the "Cloud" with Callidus Software and Salesfor...
Transforming Your Business in the "Cloud" with Callidus Software and Salesfor...
 
2. 8 things that will make your business love your developers again
2. 8 things that will make your business love your developers again2. 8 things that will make your business love your developers again
2. 8 things that will make your business love your developers again
 
I T E008 Bezar 091907
I T E008  Bezar 091907I T E008  Bezar 091907
I T E008 Bezar 091907
 
Introduction to Data.com APIs
Introduction to Data.com APIsIntroduction to Data.com APIs
Introduction to Data.com APIs
 
The Power of Salesforce APIs World Tour Edition
The Power of Salesforce APIs World Tour EditionThe Power of Salesforce APIs World Tour Edition
The Power of Salesforce APIs World Tour Edition
 
Platform session 1 Innovation on the salesforce platform - speed vs control
Platform session 1 Innovation on the salesforce platform - speed vs controlPlatform session 1 Innovation on the salesforce platform - speed vs control
Platform session 1 Innovation on the salesforce platform - speed vs control
 
Next-Generation Native Apps
Next-Generation Native AppsNext-Generation Native Apps
Next-Generation Native Apps
 
Integration Strategies in a SaaS Environment
Integration Strategies in a SaaS EnvironmentIntegration Strategies in a SaaS Environment
Integration Strategies in a SaaS Environment
 
Real-Time Data Feeds Using the Streaming API
Real-Time Data Feeds Using the Streaming APIReal-Time Data Feeds Using the Streaming API
Real-Time Data Feeds Using the Streaming API
 
CCT London 2013 Theatre Intro to Apex
CCT London 2013 Theatre Intro to ApexCCT London 2013 Theatre Intro to Apex
CCT London 2013 Theatre Intro to Apex
 

More from Peter Chittum

More from Peter Chittum (20)

Dreamforce 2013 - Enhancing the Chatter Feed with Topics and Apex
Dreamforce 2013 - Enhancing the Chatter Feed with Topics and ApexDreamforce 2013 - Enhancing the Chatter Feed with Topics and Apex
Dreamforce 2013 - Enhancing the Chatter Feed with Topics and Apex
 
Winter 21 Developer Highlights for Salesforce
Winter 21 Developer Highlights for SalesforceWinter 21 Developer Highlights for Salesforce
Winter 21 Developer Highlights for Salesforce
 
LMS Lightning Message Service
LMS Lightning Message ServiceLMS Lightning Message Service
LMS Lightning Message Service
 
Apply the Salesforce CLI To Everyday Problems
Apply the Salesforce CLI To Everyday ProblemsApply the Salesforce CLI To Everyday Problems
Apply the Salesforce CLI To Everyday Problems
 
If You Can Write a Salesforce Formula, You Can Use the Command Line
If You Can Write a Salesforce Formula, You Can Use the Command LineIf You Can Write a Salesforce Formula, You Can Use the Command Line
If You Can Write a Salesforce Formula, You Can Use the Command Line
 
If you can write a Salesforce Formula you can use the command line
If you can write a Salesforce Formula you can use the command lineIf you can write a Salesforce Formula you can use the command line
If you can write a Salesforce Formula you can use the command line
 
Do Not Fear the Command Line
Do Not Fear the Command LineDo Not Fear the Command Line
Do Not Fear the Command Line
 
Don't Fear the Command Line
Don't Fear the Command LineDon't Fear the Command Line
Don't Fear the Command Line
 
Maths Week - About Computers, for Kids
Maths Week - About Computers, for KidsMaths Week - About Computers, for Kids
Maths Week - About Computers, for Kids
 
Best api features of 2016
Best api features of 2016Best api features of 2016
Best api features of 2016
 
Streaming api with generic and durable streaming
Streaming api with generic and durable streamingStreaming api with generic and durable streaming
Streaming api with generic and durable streaming
 
Salesforce Platform Encryption Developer Strategy
Salesforce Platform Encryption Developer StrategySalesforce Platform Encryption Developer Strategy
Salesforce Platform Encryption Developer Strategy
 
All Aboard the Lightning Components Action Service
All Aboard the Lightning Components Action ServiceAll Aboard the Lightning Components Action Service
All Aboard the Lightning Components Action Service
 
Dreamforce 15 - Platform Encryption for Developers
Dreamforce 15 - Platform Encryption for DevelopersDreamforce 15 - Platform Encryption for Developers
Dreamforce 15 - Platform Encryption for Developers
 
Platform Encryption World Tour Admin Zone
Platform Encryption World Tour Admin ZonePlatform Encryption World Tour Admin Zone
Platform Encryption World Tour Admin Zone
 
Salesforce Lightning Components and App Builder EMEA World Tour 2015
Salesforce Lightning Components and App Builder EMEA World Tour 2015Salesforce Lightning Components and App Builder EMEA World Tour 2015
Salesforce Lightning Components and App Builder EMEA World Tour 2015
 
Building Applications on the Salesforce1 Platform for Imperial College London
Building Applications on the Salesforce1 Platform for Imperial College LondonBuilding Applications on the Salesforce1 Platform for Imperial College London
Building Applications on the Salesforce1 Platform for Imperial College London
 
Elevate london dec 2014.pptx
Elevate london dec 2014.pptxElevate london dec 2014.pptx
Elevate london dec 2014.pptx
 
AngularJS App In Two Weeks
AngularJS App In Two WeeksAngularJS App In Two Weeks
AngularJS App In Two Weeks
 
Df14 Salesforce Advanced Developer Certification
Df14 Salesforce Advanced Developer CertificationDf14 Salesforce Advanced Developer Certification
Df14 Salesforce Advanced Developer Certification
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Boxcars and Cabooses: When One More XHR Is Too Much

  • 1. Boxcars and Cabooses When one more XHR is too much Peter Chittum Developer Evangelist @pchittum github.com/pchittum
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward- looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non- salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 3.
  • 4.
  • 5. The Goal ​ Suggest design principles ​ Try Salesforce platform ​ Lots of Salesforce projects looking for developers
  • 7.
  • 8. ​ Business and Enterprise Application Platform Company
  • 10. Bulk REST Metadata SOAP Tooling Streaming INTEGRATIONLAYER Point & Click Integration Tools Page Builder DECLARATIVE DEVELOPMENT GLOBAL ENTERPRISE CLOUD INFRASTRUCTURE PLATFORM SERVICES APP MANAGEMENT & DEPLOYMENT Workflow Engine UI Framework Sharing & Permissions Global Search Reports & Dashboards Files & Content Authenticatio n CollaborationEvent Log Framework Translation Workbench App Builder Process Builder Schema Builder Multi-Tenant Network & Firewall Auto Updates Backup & Geodiversity Security Trust IDECLI Agile Accelerator Store Builder Dev Console Sandbox Metadata Heroku DX node.js PROGRAMMATIC DEVELOPMENT Database Smart Containers Heroku Add-ons Heroku Button Ruby Identity Global Data Centers Data Storage Single code base Python Java APEXPHP Offline Salesforce1 Mobile Container Geolocation Push Notifications SDK Mobile Identity MOBILE SERVICES Community Builder Page Builder Everything You Need to Build Apps ​ Full spectrum of capabilities from enterprise control to elastic flexibility
  • 11.
  • 12. Agile and elastic platform that developers love Smarter infrastructure lets you build apps that scale Open and extensible Modern language support and ecosystem of 150+ add-ons Connected to Force.com Sync customer apps with business processes Build Customer-Facing Apps with Heroku
  • 13. HR Help Desk Employee Intranet Recruiting & Onboarding Performance & Coaching IT Help Desk / Self- Service Community Legacy Applications Consolidation Enterprise Knowledge Identity Mgmt Custom Web / Mobile Applications Business Agility Layer (e.g. Claims, Underwriting, …) Asset & Facilities Management Financial Shared Services M&A Enablement Early Warning Management Product Ideas & Innovation Pre-Production Testing Warrant Coverage Decisioning Procurement Vendor Management Transportation Logistics Contract Management Budget Management Contract Management Pricing Billing Management Audit Management Force.com - Employee Facing Apps ​  Apps HR Produc t Supply Chain IT Financ e Ops
  • 14. Multi Tenant >150k customers 40 Prod POD’s 40 Prod DB’s
  • 15. Core Force.com Characteristics ​ Single Code Base ​ Single Schema ​ 3 Upgrades Per Year ​ Secure ​ Durable and Scalable ​ Customizable ​ Easy enough for a Business Analyst ​ Flexible enough for a Coder
  • 16. Pre-Built Apps ​ AppExchange is the #1 Business App Marketplace Customized for Salesforce Trusted and Secure Reviewed by Peers Over 2,800 apps 3 million installs
  • 17. ​ Overall site peak day •  >3.5 Billion transactions •  200 milliseconds average •  60% of transactions via API requests ​ Typically production instance •  >8,000 Customer Orgs •  30 App Servers and 8 DB Servers Salesforce’s Daily Performance Friday: 3,173,762,799 Transactions
  • 18. 3 Releases Per Year API backward compatibility ensures ease of deployment 47 Major Releases 100’s of Small Releases Yearly All Integrations and Customizations Auto-Upgraded 6BLines of Apex Code 1BAPI Calls Per Day, 32 versions 12M Visualforce Pages 15MCustom Database Tables 1 Version
  • 21. Problem: Old Custom UI Technology ​ Server-side generated, page based HTML HTML <div>...</div>
  • 22. New UI: Component-based Client-rendered JSON component:{...} <div>...</div>
  • 23. Aura and Lightning Component Framework Lightning Component Framework
  • 24. Lightning Component Design Principles •  Component author namespacing •  Automatic component-based CSS namespacing •  Everything is a component •  Allow for programmatic or point-and-click UI composition •  Enable Salesforce, customers, and partners to build composite UIs •  Works on any form factor
  • 25.
  • 26. Many Components Many Server Trips XMLHttpRequest XMLHttpRequest XMLHttpRequest
  • 27. Actions: Interact with the Server •  Apex Method Surfaced to Lightning Components •  @AuraEnabled annotation
  • 28. Boxcarring: Many Actions, One XHR ActionService
  • 29. Caboose: Postpone High Volume Actions ActionService •  Defer High-Volume Actions •  Action.setCaboose()
  • 30. Action Service: Server Side API ​ Apex: Code on Force.com
  • 32. Demo
  • 33. Possible Future Features ​ Making actions cacheable ​ Ability to prioritize actions
  • 35. Comprehensive Suite of APIs and Toolkits Web Service Endpoint Web Service Endpoint Apex WS/REST Outbound Messaging Business Logic Sync Bulk API Streaming API Topic CRUD Data Bayeux Client Applications and Middleware Java SDK Ruby gem PHP Toolkit Mobile SDK Mobile SDK 3rd Party Adapters Apex Callouts
  • 36. Salesforce1 Enterprise APIs ​ The Salesforce “Data” APIs •  Allow programmatic access to your salesforce data through various API technologies •  Many different APIs to suit your specific needs Rest APIs Access and manipulate data with a RESTful pattern with JSON and XML payloads Soap APIs Access and manipulate data using SOAP. Streaming APIs Subscribe to updates using a Bayeux / CometD HTTP Streaming API. Bulk APIs Perform Bulk Queries and Inserts/Updates Asynchronously.
  • 37. Boxcarring, what a great idea! ​ Boxcarring is dependent on Lightning Components ​ Only works with one client interface ​ What about all those API apps out there? ​ If only we could let any client batch together requests…
  • 38. Many Requests Many Server Trips POST Record GET Server Gen Data GET API Limits
  • 39. Composite Batch REST API .../composite/batch POST Batch { "batchRequests":[ {POST}, {GET}, {GET} ] }
  • 40. Sample Batch Request ​ POST: <salesforcedomain>/services/data/v35.0/composite/batch ​ {"batchRequests" : [ ​  {"method" : "POST", ​  "url" : "v35.0/sobjects/account/", ​  "richInput" : {"Name" : "NewName", "Industry" : "Tech"}}, ​  {"method" : "GET", ​  "url" : "v35.0/sobjects/account/describe/"}, ​  {"method" : "GET", ​  "url" : "v35.0/query?q=select id, name, industry from account ​ order by createddate desc limit 10" ​  }] ​ }
  • 41. Parent/Child Related Data POST Account POST related Contacts POST related Cases RESP: Account ID RESP: Contact IDs RESP: Case IDs
  • 42. Composite Tree REST API .../composite/tree/entity POST Tree ”records":[ {parent1}, {parent2}, {parent3} ]
  • 43. Sample Batch Request ​ POST: <salesforcedomain>/services/data/v35.0/composite/tree/Account ​ {"records" :[ ​  {"attributes": {"type":"Account", "referenceId":"ref1"}, ​  "name" : "SampleAccount", "phone" : "1234567890", ​  "type" : "Analyst", "industry" : "Banking", ​  "Contacts" : { ​  "records" : [ ​  {"attributes": {"type":"Contact", "referenceId":"ref2"}, ​  "lastname" : "Smith", "title" : "President"}, ​  ...]}, ​  "Cases" : { ​  "records" : [ ​  {"attributes": {"type":"Case", "referenceId":"ref3"}, ​  "" : "", "" : "", "" : ""} ​  ...]}, }}, ...] }
  • 44. Demo
  • 45. Possible Future Features ​ Parameter-based values ​ Basic Orchestration ​ Updates on /tree
  • 46. Free Developer Edition of Force.com ​ http://bit.ly/webcamp-salesforce
  • 48. Q & A Peter Chittum Developer Evangelist @pchittum github.com/pchittum ​ Signup: http://bit.ly/webcamp-salesforce ​ Learn: https://developer.salesforce.com/trailhead RATE ME! https://joind.in/15243