Developing Real-Time Applications

  • Speed Development of Real-Time Chat

    Concerns:

    • Application requires user inputs to be broadcast to all participants
    • Needs to receive both real-time and historical messages
    • Need to support participants across multiple platforms (web, desktop, mobile)
    • Messages must have guaranteed delivery and consistently low latency
    • Want to avoid 3rd party solution costs

    How Diffusion helps:

    • Pub/Sub – easily send and receive messages across dynamically created topics
    • 1-to-1, 1-to-many messaging – easily send and receive messages among specific users
    • 1st class support for web & mobile – easily connect users on different platforms to the same chat channel over the internet
    • Time Series Topics – subscribe to topics to receive messages in real-time, while also being able to query historic data to retrieve old messages.
    • Reliable reconnection – messages are queued while client apps are disconnected, meaning no loss of data.
  • Enable Real-Time Collaboration

    Concerns:

    • Application requires real-time user inputs to be broadcast to all participants
    • Need to support participants across multiple platforms (web, desktop, mobile)
    • Events must have guaranteed delivery and consistently low latency
    • Consistent view for all users

    How Diffusion helps:

    • Pub/Sub – easily send and receive events across dynamically created topics
    • Binary deltas – reduces bandwidth used for sending data, lowering latency and saving data costs
    • 1st class support for web & mobile – easily connect users on different platforms to the same data source
    • Updates to topics are delivered in the same order to all subscribing clients, ensuring consistent state for all users
    • Reliable reconnection – messages are queued while client apps are disconnected, meaning no loss of events.
  • Ingest And Broadcast Events Across DBs, Analytics and A.I.

    Concerns:

    • Operation critical systems built on reactive DBs, Analytics engines or A.I. systems
    • Consistent and reliable, real-time event delivery required
    • Single platform for bi-directional communication across the internet
    • Scale to handle tens/hundreds of thousands of event sources

    How Diffusion helps:

    • High performance Pub/Sub – easily send and receive events in real-time from all Client SDKs.
    • Message queueing ensures that events have guaranteed delivery regardless of throughput speeds.
    • Data-agnostic messaging supports any type of event data
    • Broad variety of 1st party Diffusion SDKs for multiple platforms (Java, .Net, JS, Mobile)
  • Ingest And Broadcast Events With Application Bots

    Concerns:

    • Application bot systems driven by user-generated events
    • Real-time interaction is mandatory
    • Easily integrate across multiple platforms

    How Diffusion helps:

    • High performance Pub/Sub – easily send and receive events in real-time
    • Granular Security model – restrict who is able to update or subscribe to specific topics based on custom authentication details
    • Broad variety of 1st party Diffusion SDKs for multiple platforms (Java, .Net, JS, Mobile)
  • Ingest Events Into Web Analytics

    Concerns:

    • Application behaviour driven by real-time events
    • Analytics processing applied across large numbers of event sources
    • Needs ability to select sub-sets of event sources
    • Needs ability to consume historical event data

    How Diffusion helps:

    • High-performance architecture allows clients to receive up to millions of messages a second
    • Regex-based selector syntax – dynamically receive data from topics based on regular expression patterns.
    • Time-Series data – stores topic updates in a historic event log, with specialised querying API for selection of historic event data.
  • Simplify Development Of Event-Driven Applications

    Concerns:

    • Application behaviour driven by real-time events
    • Events must have guaranteed delivery and consistently low latency
    • Consistency of data across all devices
    • Time-to-Market is key priority

    How Diffusion helps:

    • Pub/Sub – easily update and receive events across thousands of topics
    • Binary deltas – less bandwidth used, fewer packets = lower & more consistent latency (necessary for real-time)
    • Broad variety of 1st party Diffusion SDKs for multiple platforms (Java, .Net, JS, Mobile)
    • Reliable reconnection – messages queued while client apps are disconnected, meaning no loss of events.
    • Rich Client SDK feature set removes requirement to develop bespoke solutions from scratch – pub/sub, messaging, security.
    • Flexible deployment model – on-prem, SaaS or hybrid.
  • Ingest Data From Devices

    Concerns:

    • Large numbers of devices producing data
    • High potential costs for sending/receiving data
    • Need to handle volatile connectivity of devices (mobile networks, satellite networks)

    How Diffusion helps:

    • Broad variety of 1st party Client SDKs – Java, C, .Net, JS
    • Diffusion as middleware – enables large numbers of connections from mobile devices without adding load to back-end systems
    • Reliable reconnection – no messages lost when devices become disconnected
  • Combine Streaming & Messaging Behavior

    Concerns:

    • Complex applications that require both streaming and messaging behaviour
    • Bespoke code needed to combine separate streaming / messaging products to satisfy functional requirements

    How Diffusion helps:

    • Offers Pub/Sub and Request/Response interaction modes in single product
    • Broad variety of 1st party Diffusion SDKs for multiple platforms (Java, .Net, C, JS) that support both types of interaction with server
    • Security Model that applies to all forms of interaction, allowing single point of control for entire application