Real-Time Data Feeds Using the Streaming API

12
Real Time Data Feeds Using the Streaming API Mike Tetlow, Bracket Labs, Developer @Mikename

description

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.

Transcript of Real-Time Data Feeds Using the Streaming API

Page 1: Real-Time Data Feeds Using the Streaming API

Real Time Data Feeds Using the Streaming API

Mike Tetlow, Bracket Labs, Developer@Mikename

Page 2: Real-Time Data Feeds Using the Streaming API

Safe HarborSafe 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.

Page 3: Real-Time Data Feeds Using the Streaming API

Session ObjectivesImplement 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

Page 4: Real-Time Data Feeds Using the Streaming API

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

Page 5: Real-Time Data Feeds Using the Streaming API

Streaming API Implementation Demo

Page 6: Real-Time Data Feeds Using the Streaming API

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

Page 7: Real-Time Data Feeds Using the Streaming API

AlternativesInterval 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.

Page 8: Real-Time Data Feeds Using the Streaming API

Polling Demo

Page 9: Real-Time Data Feeds Using the Streaming API

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.

Page 10: Real-Time Data Feeds Using the Streaming API

Mike Tetlow

Bracket Labs@Mikename

Page 11: Real-Time Data Feeds Using the Streaming API

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

Page 12: Real-Time Data Feeds Using the Streaming API