Synchronization#

Why is synchronization needed?#

In centralized systems, Supply-Side Platforms and Demand-Side Platforms interact with each other in the following way:

However, in Adshares Protocol a different workflow is applied:

Thus, in Adshares Ecosystem:

And here is why Supply-Side Platforms and Demand-Side Platforms want to stay in sync by querying each other inventories:

Synchronization workflow#

The following diagram presents an overview of the Synchronization process:

skinparam monochrome true

collections "Supply-Side Platform"      as SSP
participant "ADS Blockchain"            as blockchain
collections "Demand-Side Platforms"     as DSP

==Sending Broadcast==

loop at least once every 24 hours
    SSP ->          blockchain:   Send Broadcast
end

loop at least once every 24 hours
    DSP ->          blockchain:   Send Broadcast
end

==Receiving Broadcast==

loop at least once every 24 hours
    SSP ->          blockchain:   Fetch Broadcasts
    blockchain -->  SSP:          List of Broadcasts
    SSP ->          SSP:          Analyze\nBroadcast
    SSP ->          DSP:          Fetch Platform Metadata
    DSP -->         SSP:          Platform Metadata
    SSP ->          SSP:          Update\nPlatform\nMetadata
end

loop at least once every 24 hours
    DSP ->          blockchain:   Fetch Broadcasts
    blockchain -->  DSP:          List of Broadcasts
    DSP ->          DSP:          Analyze\nBroadcast
    DSP ->          SSP:          Fetch Platform Metadata
    SSP -->         DSP:          Platform Metadata
    DSP ->          DSP:          Update\nPlatform\nMetadata
end

==Updating Inventory==

loop periodically
    SSP ->          DSP:          Fetch Demand-Side Inventory
    DSP -->         SSP:          Demand-Side Inventory
    SSP ->          SSP:          Update\nDemand-Side\nInventory
end

loop periodically
    DSP ->          SSP:          Fetch Supply-Side Inventory
    SSP -->         DSP:          Supply-Side Inventory
    DSP ->          DSP:          Update\nSupply-Side\nInventory
end

Synchronization is done by Supply-Side Platforms and Demand-Side Platforms broadcasting via ADS Blockchain a URL pointing to Platform Metadata.

Once the Platform Metadata is retrieved, the next step is to retrieve Supply-Side Inventory or Demand-Side Inventory.

This is done by using the endpoints contained in the Platform Metadata supplyInventoryUrl and demandInventoryUrl fields:

To be applicable, the inventory data needs to be classified by appropriate tags. In order to apply tagging for its inventory data:

As inventory data is likely to change over time, the endpoints defined in supplyInventoryUrl and demandInventoryUrl fields need to be queried on a regular basis.

Contents#