Join us to learn practical applications of the Streaming API, as well as technical implementation concerns. We?ll start by creating server-side Apex methods and then we?ll implement some basic JavaScript handlers to accept the real-time data updates. Finally, we?ll create a beautiful interface using Bootstrap to notify the user of a change. You'll walk away feeling comfortable with saying, ?Yes, we can do real-time updates in Force.com,? and have the documentation and examples to back that up.
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
Real Time Data Feeds Using Streaming API and Polling
1. Real Time Data Feeds Using the
Streaming API
Mike Tetlow, Bracket Labs, Developer
@Mikename
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. Session Objectives
Implement Real Time Data Feeds with Visualforce pages
▪ Streaming API Implementation
• Basic implementation of Streaming API
• Display updates and notifications
▪ Streaming API Limitations and Alternatives
• Overview of Streaming API limits
• Using Apex Remote Actions to poll for updates
4. What is the Streaming API?
▪ Long polling approach to pushing updates
• Long lived connection to Salesforce waiting for changes in data
• Display updates and notifications
▪ Clients Subscribe to PushTopics
• PushTopics are linked to a SOQL query that watches for data changes
• When a change occurs the connection returns with the new data and reconnects
waiting for more changes
6. Streaming API Limits
Description
Unlimited Edition
Enterprise Edition
All Other Editions
Max number of PushTopics per org
50
25
20
Max number of clients per topic
100
20
10
Max number of concurrent clients
1,000
500
10
Max number of events per 24hr
1,000,000
200,000
10,000 (1000 for free orgs)
Source: http://www.salesforce.com/us/developer/docs/api_streaming/Content/limits.htm
7. Alternatives
Interval Polling
▪ Short Polling approach which queries for updates
• Short lived connection which simply runs a method and returns the result of the
method
• Interval is scheduled and run from Browser.
▪ How Interval Poll on Salesforce
• Use Apex Remote Actions, they are easily executed from Javascript and loose
limits
• The Remote Action will return data from the controller and you can take almost any
action you want after parsing that data.
9. Which one should I use!?!?
▪ Streaming API
• Use it if you can, it’s great, well thought out and is more efficient than anything else
out there.
▪ Polling alternative
• Use it if you are hitting limits around the Streaming API.
• Can use it if your data source is something other than a SOQL query. Think of all
the joins and data manipulation done in your average controller.
• Be careful. It’s not a good practice to poll repeatedly for data, but sometimes you
have no alternative. If you do this be considerate of the server and consider doing
some calculations on the client side.
11. We want to hear
from YOU!
Please take a moment to complete our
session survey
Surveys can be found in the “My Agenda”
portion of the Dreamforce app