Sending Data Over Unreliable Networks

  • Extend Messaging Across The Internet

    Concerns:

    • Need to extend traditionally back-end messaging across the internet to web/mobile apps
    • Must be able to handle unreliable and congested networks
    • Need consistent QoS for scaling to large numbers of connections

    How Diffusion helps:

    • 1-to-1 and 1-to-many messaging features across all Client SDKs
    • Reliable reconnect – no lost messages in the case of client disconnection
    • Message delivery acknowledgement and explicit error handling
    • High-performance server architecture for scaling to large numbers of client connections
    • 1st party Client SDKs for web and mobile platforms
  • Synchronize Data Across On-Prem & Cloud Deployments

    Concerns:

    • System architecture spread across on-prem and cloud deployments
    • Cost of data transfer can be considerable
    • Data security is paramount

    How Diffusion helps:

    • Clustering architecture supports multiple Diffusion nodes for HA & data persistence
    • Fan-out architecture allows multiple clusters to be deployed in separate locations, with data automatically synched between each tier
    • Binary deltas – drastically reduce bandwidth needed for data broadcast = lower data costs
    • Per-connection queueing – decouples update rate from consumption rate, providing adaptability to changes in connection latency
    • Automatic reconnect – fan-out tiers reconnect in the event of lost connection, with automatic catch-up to latest data
  • Synchronize Data Across Locations

    Concerns:

    • System architecture spread across multiple data centres / regions
    • Data model must be consistent across disparate locations
    • Cost of data transfer is a primary factor

    How Diffusion helps:

    • Clustering architecture supports multiple Diffusion nodes for HA & data persistence
    • Fan-out architecture allows multiple clusters to be deployed in separate locations, with data automatically synched between each tier
    • Binary deltas – drastically reduce bandwidth needed for data broadcast = lower data costs
    • Per-connection queueing – decouples update rate from consumption rate, providing adaptability to changes in connection latency
    • Automatic reconnect – fan-out tiers reconnect in the event of lost connection, with automatic catch-up to latest data
  • Stream Data To Web & Mobile Apps

    Concerns:

    • Need to move changing data over poor-quality networks (mobile, satellite)
    • Need to account for possible disconnections / catch-up on reconnect
    • Need consistent QoS – minimal variation in latency

    How Diffusion helps:

    • Binary deltas – less bandwidth used, fewer packets = lower & more consistent latency
    • Automatic reconnection – handles volatile connectivity, guarantees message delivery, catches clients back up when reconnected
    • Client queues – data for each connection is queued, meaning that messages aren’t lost in case of slow networks or disconnections
  • Synchronizing Data Across Disparate Systems

    Concerns:

    • Changes data must be communicated across multiple systems
    • Data must be consistent (i.e all systems have same view on data)
    • Ownership model – different systems own different bits of data
    • Need to support multiple languages/platforms

    How Diffusion helps:

    • Pub/Sub – easily update and receive data on different named topics
    • Value caching – latest value always held by topics, ensuring subscribers will always be up-to-date
    • Topic replication – changes to data are replicated across Diffusion clusters ensuring consistent availability
    • User Permissions and Topic Ownership – control precisely who can update which topics
    • Broad variety of 1st party Diffusion SDKs for multiple platforms (Java, .Net, C, JS)