SlideShare a Scribd company logo
Durable Streaming and Enterprise Messaging
​ Jay Hurst
​ Director, Product Management
​ jhurst@salesforce.com
​ @extraidea
​ John Brock
​ SMTS – Enterprise Messaging
​ jbrock@salesforce.com
​ @_ johnbrock
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.
Jay Hurst
Director - Product Management, Salesforce
jhurst@salesforce.com
@extraidea
John Brock
SMTS – Enterprise Messaging
jbrock@salesforce.com
@_ johnbrock
Streaming Data from Salesforce
​ Many customers are facing a set of challenges around pushing
changes out of Salesforce.
​ Raise your hand if you:
•  Have used the Classic or Generic Streaming API in Salesforce
•  Have tried to build synchronization or change detection based on
streaming, but are having issues
•  Have a need for a reliable, durable flow of data in and out of
Salesforce
Enterprise Messaging
Enterprise Messaging
​ The goal is to support the concept of an Event as a first class object
•  An event is an immutable, time-stamped set of values.
•  Can represent multiple values
•  Actions - "A report was generated", "An order has been placed"
•  Measurements – "API limits are at 50%", "1MM records have been created"
•  State Changes - "Account 0010000023234 field Name was updated to 'Acme, Inc.'"
•  Allow a large number of events to flow through the platform
•  Scale to millions of events per minute per pod
•  API first design to support:
•  Publishing events to a message channel
•  Consuming events from a message channel
•  Provide ability to replay events from a defined time-window
Where are we today?
Classic Streaming API
Based on the Bayeux/CometD protocol
•  The client will open up a long polling connection to the Salesforce server and subscribe to a Push Topic
•  The client must regularly reconnect to keep the session alive
•  When a record meets the query, we send an event down the connection to the client
•  The client then reconnects to the long polling connection and waits for the next message
​ Allows you to define a query and have Salesforce send an event to your listener whenever a record
is modified and meets that query
•  The messages are sent in near real time
•  The Streaming API is not loss-less
•  If the client is not connected, the message will not be received, and cannot be replayed
Where are we going tomorrow (or shortly thereafter)?
Durable Streaming API
​ The first implementation of Enterprise Messaging will be to enhance the Streaming API
•  Provide the ability for replay of Generic Streaming API events (Durable Streaming)
•  Existing Streaming Channel pushes will generate the Conduit events
•  Additional Event ID will be provided in message
•  Event ID will be atomic and ever-increasing
•  A new replay method will be available that will replay all events from a provided ID
•  The replay will re-deliver all messages that are after the provided ID
•  Event replay will be available for up to 24 hours
•  Protocol (Bayeux/CometD) will remain and require changes only to take advantage of replay
•  Clients will need to store and provide the Event ID
•  If no event ID provided in subscribe, then the events will be delivered from the tip of the queue
•  This will result in the existing behavior available today
Durable Streaming Demo
Durable Streaming Code Samples
Code Sample
Javascript Client Replay Extension
Code Sample
Javascript CometD Example
Code Sample
Java Client Replay Extension
Code Sample
Java CometD Example
Event Architecture
Enterprise Messaging – Event Time Window
​ The Event Time Window allows for events to be
added in time order to the channel
•  Events are added through a producer API and
retrieved from the channel via the consumer API
•  The "window" will slide with time, and any events
within the window can be replayed
•  Events are ordered
•  Replay events from anywhere in event log window
Event Architecture – Conduit API
​ Conduit API Allows for Producing and Consuming Events
•  Simple publisher and consumer API
Event Architecture – Conduit SPIs
​ Conduit SPI Allows a common API for multiple Time Ordered
Event Log implementations
•  Conduit SPI interface allows multiple concrete event log
implementations
•  Kafka, SQL, HBase, In Memory, etc...
•  Provides a common API across all providers
•  The SPIs will also allow for composing event logs into different SLAs
Streaming API v2
How do Conduit and Streaming v2 Interact
​ Runs as an embedded or stand-alone service
​ Client interface via CometD
​ Event processing pipeline
​ Conduit - SPI
•  Use different data stores
•  Plug and play
•  Holds client information
•  Optimizes event replay
•  Plus much more!
App Server
Oracle
Clients
Current
Streaming
API
Streaming
Events
Table
Conduit
Events
Table
Winter ‘16
App Server
Current
Streaming
API
Clients
Internal
Conduit
Push API
Kafka Cluster
Future
App Server
Kafka Cluster
Clients
Internal
Conduit
Push API
HBase
Future++
Enterprise Messaging – Roadmap (Safe Harbor J)
​ Winter '16
•  Durable Generic Streaming (Limited Pilot)
​ Spring '16
•  Durable Generic Streaming GA
•  Durable Classic Streaming Pilot
​ Summer '16
•  Durable Classic Streaming GA
•  Kafka-Backed Queues
•  Conduit Producer API public implementations for Apex
•  Conduit Consumer API public implementations for Apex
•  Conduit API implementations for Workflow/Process Builder
What did we Learn?
​ Existing Features that begin to support messaging
•  Classic Streaming API
•  Generic Streaming API
​ Information on Durable Streaming
​ Demo of Durable Streaming
•  Showed an example of Generic Durability
•  Showed an example of Classic Durability
​ Roadmap for Event Messaging
Q&A
Share Your Feedback, and Win a GoPro!
3
Earn a GoPro prize entry for
each completed survey
Tap the bell to take a
survey2Enroll in a session1
Thank you

More Related Content

PDF
Streaming API with Java
PDF
Streaming api with generic and durable streaming
PPTX
Understanding Salesforce Streaming API
PPTX
Building BOTS on App Cloud
PPTX
Unleash the Power of Apex Realtime Debugger
PPTX
Building apps faster with lightning and winter '17
PPTX
Real Time Integration with Salesforce Platform Events
PPTX
Build Better Communities with Lightning
Streaming API with Java
Streaming api with generic and durable streaming
Understanding Salesforce Streaming API
Building BOTS on App Cloud
Unleash the Power of Apex Realtime Debugger
Building apps faster with lightning and winter '17
Real Time Integration with Salesforce Platform Events
Build Better Communities with Lightning

What's hot (17)

PPTX
Modeling and Querying Data and Relationships in Salesforce
PDF
Javascript Security and Lightning Locker Service
PPTX
Migrating Visualforce Pages to Lightning
PPTX
Secure Development on the Salesforce Platform - Part 3
PDF
Replicate Salesforce Data in Real Time with Change Data Capture
PDF
Salesforce Tour Paris - Platform Events - Martin Lezer
PPT
Advanced Platform Series - OAuth and Social Authentication
PPTX
Diving Into Heroku Private Spaces
PPTX
Mastering Force.com: Advanced Visualforce
PDF
Lightning Data Service: Eliminate Your Need to Load Records Through Controllers
PPTX
Introduction to Apex for Developers
PDF
Build Amazing Website without coding using Salesforce SiteForce
PPTX
Webinar: Build Apps Customers Love as a Salesforce Developer
PPTX
Integrating with salesforce
PPTX
Embed Customer Support into your Apps with Snap-ins
PPTX
Lightning Updates: Summer, Winter & Beyond
PDF
Lightning Components - Advanced Features
Modeling and Querying Data and Relationships in Salesforce
Javascript Security and Lightning Locker Service
Migrating Visualforce Pages to Lightning
Secure Development on the Salesforce Platform - Part 3
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Tour Paris - Platform Events - Martin Lezer
Advanced Platform Series - OAuth and Social Authentication
Diving Into Heroku Private Spaces
Mastering Force.com: Advanced Visualforce
Lightning Data Service: Eliminate Your Need to Load Records Through Controllers
Introduction to Apex for Developers
Build Amazing Website without coding using Salesforce SiteForce
Webinar: Build Apps Customers Love as a Salesforce Developer
Integrating with salesforce
Embed Customer Support into your Apps with Snap-ins
Lightning Updates: Summer, Winter & Beyond
Lightning Components - Advanced Features
Ad

Viewers also liked (8)

PPTX
New Powerful API Enhancements for Summer '15
DOCX
Salesforce Admin's guide : the data loader from the command line
PPTX
Salesforce External Objects for Big Data
PPTX
Hbase at Salesforce.com
PDF
Tagging and Processing Data in Real Time-(Hari Shreedharan and Siddhartha Jai...
PPTX
Access External Data in Real-time with Lightning Connect
PDF
Secure Kafka at Salesforce.com
PPTX
Salesforce enabling real time scenarios at scale using kafka
New Powerful API Enhancements for Summer '15
Salesforce Admin's guide : the data loader from the command line
Salesforce External Objects for Big Data
Hbase at Salesforce.com
Tagging and Processing Data in Real Time-(Hari Shreedharan and Siddhartha Jai...
Access External Data in Real-time with Lightning Connect
Secure Kafka at Salesforce.com
Salesforce enabling real time scenarios at scale using kafka
Ad

Similar to Durable Streaming and Enterprise Messaging (20)

PDF
ADV Slides: Trends in Streaming Analytics and Message-oriented Middleware
PDF
Real-Time Data Feeds Using the Streaming API
PPTX
Forcelandia 2018 - Create lively lightning components with streaming api
PPTX
Salesforce Streaming Api
PPTX
Salesforce Streaming event - PushTopic and Generic Events
PPTX
Kochi mulesoft meetup 02
PDF
Event-Driven Applications Done Right - Pulsar Summit SF 2022
PDF
Enterprise API New Features and Roadmap
PDF
Messaging for modern applications
PDF
2018 12-10 apidays.io eric horesnyi streamdata.io event-driven ap is
PDF
apidays New York 2022 - Leveraging Event Streaming to Super-Charge your Busin...
PDF
Enabling a Real-Time, Agile, Event-Driven Enterprise
PDF
APIdays Paris 2018 - Event-Driven APIs Eric Horesnyi, CEO, Streamdata.io
PPTX
Event-driven architecture with Java technology stack
PPTX
Chandigarh MuleSoft Meetup #3
PPTX
Integration Patterns With Spring integration
PPTX
MuleSoft Meetup São Paulo #4 - November
PDF
7_considerations_final
PDF
Event Driven-Architecture from a Scalability perspective
PDF
What's New Overview for IBM Streams V4.3
ADV Slides: Trends in Streaming Analytics and Message-oriented Middleware
Real-Time Data Feeds Using the Streaming API
Forcelandia 2018 - Create lively lightning components with streaming api
Salesforce Streaming Api
Salesforce Streaming event - PushTopic and Generic Events
Kochi mulesoft meetup 02
Event-Driven Applications Done Right - Pulsar Summit SF 2022
Enterprise API New Features and Roadmap
Messaging for modern applications
2018 12-10 apidays.io eric horesnyi streamdata.io event-driven ap is
apidays New York 2022 - Leveraging Event Streaming to Super-Charge your Busin...
Enabling a Real-Time, Agile, Event-Driven Enterprise
APIdays Paris 2018 - Event-Driven APIs Eric Horesnyi, CEO, Streamdata.io
Event-driven architecture with Java technology stack
Chandigarh MuleSoft Meetup #3
Integration Patterns With Spring integration
MuleSoft Meetup São Paulo #4 - November
7_considerations_final
Event Driven-Architecture from a Scalability perspective
What's New Overview for IBM Streams V4.3

More from Salesforce Developers (20)

PDF
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
PDF
Maximizing Salesforce Lightning Experience and Lightning Component Performance
PDF
Local development with Open Source Base Components
PPTX
TrailheaDX India : Developer Highlights
PDF
Why developers shouldn’t miss TrailheaDX India
PPTX
CodeLive: Build Lightning Web Components faster with Local Development
PPTX
CodeLive: Converting Aura Components to Lightning Web Components
PPTX
Enterprise-grade UI with open source Lightning Web Components
PPTX
TrailheaDX and Summer '19: Developer Highlights
PDF
Live coding with LWC
PDF
Lightning web components - Episode 4 : Security and Testing
PDF
LWC Episode 3- Component Communication and Aura Interoperability
PDF
Lightning web components episode 2- work with salesforce data
PDF
Lightning web components - Episode 1 - An Introduction
PDF
Migrating CPQ to Advanced Calculator and JSQCP
PDF
Scale with Large Data Volumes and Big Objects in Salesforce
PDF
Modern Development with Salesforce DX
PDF
Get Into Lightning Flow Development
PDF
Integrate CMS Content Into Lightning Communities with CMS Connect
PDF
Introduction to MuleSoft
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Local development with Open Source Base Components
TrailheaDX India : Developer Highlights
Why developers shouldn’t miss TrailheaDX India
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Converting Aura Components to Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
TrailheaDX and Summer '19: Developer Highlights
Live coding with LWC
Lightning web components - Episode 4 : Security and Testing
LWC Episode 3- Component Communication and Aura Interoperability
Lightning web components episode 2- work with salesforce data
Lightning web components - Episode 1 - An Introduction
Migrating CPQ to Advanced Calculator and JSQCP
Scale with Large Data Volumes and Big Objects in Salesforce
Modern Development with Salesforce DX
Get Into Lightning Flow Development
Integrate CMS Content Into Lightning Communities with CMS Connect
Introduction to MuleSoft

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
Teaching material agriculture food technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Weekly Chronicles - August'25-Week II
Unlocking AI with Model Context Protocol (MCP)
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Teaching material agriculture food technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
A comparative analysis of optical character recognition models for extracting...
MIND Revenue Release Quarter 2 2025 Press Release
The AUB Centre for AI in Media Proposal.docx
Reach Out and Touch Someone: Haptics and Empathic Computing
Building Integrated photovoltaic BIPV_UPV.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine learning based COVID-19 study performance prediction
NewMind AI Weekly Chronicles - August'25-Week II

Durable Streaming and Enterprise Messaging

  • 1. Durable Streaming and Enterprise Messaging ​ Jay Hurst ​ Director, Product Management ​ jhurst@salesforce.com ​ @extraidea ​ John Brock ​ SMTS – Enterprise Messaging ​ jbrock@salesforce.com ​ @_ johnbrock
  • 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. Jay Hurst Director - Product Management, Salesforce jhurst@salesforce.com @extraidea
  • 4. John Brock SMTS – Enterprise Messaging jbrock@salesforce.com @_ johnbrock
  • 5. Streaming Data from Salesforce ​ Many customers are facing a set of challenges around pushing changes out of Salesforce. ​ Raise your hand if you: •  Have used the Classic or Generic Streaming API in Salesforce •  Have tried to build synchronization or change detection based on streaming, but are having issues •  Have a need for a reliable, durable flow of data in and out of Salesforce
  • 7. Enterprise Messaging ​ The goal is to support the concept of an Event as a first class object •  An event is an immutable, time-stamped set of values. •  Can represent multiple values •  Actions - "A report was generated", "An order has been placed" •  Measurements – "API limits are at 50%", "1MM records have been created" •  State Changes - "Account 0010000023234 field Name was updated to 'Acme, Inc.'" •  Allow a large number of events to flow through the platform •  Scale to millions of events per minute per pod •  API first design to support: •  Publishing events to a message channel •  Consuming events from a message channel •  Provide ability to replay events from a defined time-window
  • 8. Where are we today? Classic Streaming API Based on the Bayeux/CometD protocol •  The client will open up a long polling connection to the Salesforce server and subscribe to a Push Topic •  The client must regularly reconnect to keep the session alive •  When a record meets the query, we send an event down the connection to the client •  The client then reconnects to the long polling connection and waits for the next message ​ Allows you to define a query and have Salesforce send an event to your listener whenever a record is modified and meets that query •  The messages are sent in near real time •  The Streaming API is not loss-less •  If the client is not connected, the message will not be received, and cannot be replayed
  • 9. Where are we going tomorrow (or shortly thereafter)? Durable Streaming API ​ The first implementation of Enterprise Messaging will be to enhance the Streaming API •  Provide the ability for replay of Generic Streaming API events (Durable Streaming) •  Existing Streaming Channel pushes will generate the Conduit events •  Additional Event ID will be provided in message •  Event ID will be atomic and ever-increasing •  A new replay method will be available that will replay all events from a provided ID •  The replay will re-deliver all messages that are after the provided ID •  Event replay will be available for up to 24 hours •  Protocol (Bayeux/CometD) will remain and require changes only to take advantage of replay •  Clients will need to store and provide the Event ID •  If no event ID provided in subscribe, then the events will be delivered from the tip of the queue •  This will result in the existing behavior available today
  • 12. Code Sample Javascript Client Replay Extension
  • 14. Code Sample Java Client Replay Extension
  • 17. Enterprise Messaging – Event Time Window ​ The Event Time Window allows for events to be added in time order to the channel •  Events are added through a producer API and retrieved from the channel via the consumer API •  The "window" will slide with time, and any events within the window can be replayed •  Events are ordered •  Replay events from anywhere in event log window
  • 18. Event Architecture – Conduit API ​ Conduit API Allows for Producing and Consuming Events •  Simple publisher and consumer API
  • 19. Event Architecture – Conduit SPIs ​ Conduit SPI Allows a common API for multiple Time Ordered Event Log implementations •  Conduit SPI interface allows multiple concrete event log implementations •  Kafka, SQL, HBase, In Memory, etc... •  Provides a common API across all providers •  The SPIs will also allow for composing event logs into different SLAs
  • 20. Streaming API v2 How do Conduit and Streaming v2 Interact ​ Runs as an embedded or stand-alone service ​ Client interface via CometD ​ Event processing pipeline ​ Conduit - SPI •  Use different data stores •  Plug and play •  Holds client information •  Optimizes event replay •  Plus much more!
  • 24. Enterprise Messaging – Roadmap (Safe Harbor J) ​ Winter '16 •  Durable Generic Streaming (Limited Pilot) ​ Spring '16 •  Durable Generic Streaming GA •  Durable Classic Streaming Pilot ​ Summer '16 •  Durable Classic Streaming GA •  Kafka-Backed Queues •  Conduit Producer API public implementations for Apex •  Conduit Consumer API public implementations for Apex •  Conduit API implementations for Workflow/Process Builder
  • 25. What did we Learn? ​ Existing Features that begin to support messaging •  Classic Streaming API •  Generic Streaming API ​ Information on Durable Streaming ​ Demo of Durable Streaming •  Showed an example of Generic Durability •  Showed an example of Classic Durability ​ Roadmap for Event Messaging
  • 26. Q&A
  • 27. Share Your Feedback, and Win a GoPro! 3 Earn a GoPro prize entry for each completed survey Tap the bell to take a survey2Enroll in a session1