The Commons client allows users and organisations to document and share their datasources. It also allows users to synchronize partners' datasources locally and export the data within their own infrastructure. The client is a two tier model application where a thin client runs on users' computers and a server deployment is done on a select computer that will be used as the anchor point to communicate with the network. The schema on the right shows how the client interacts with partners through the network. In order to simplify the setup of the sharing process, different aspects were put together into a complete system:


  • A simplified social network
    The social network aspect starts at the Profiles application which allows the user to create an account and invite other users to connect with them on the platform. Once the connection request is accepted, users can communicate through the application and see ressources on their partners Commons app based on the access levels each user authorizes on their respective Commons clients. Communication is possible using Chat plugins that are integrated in various parts of the application. 
  • A data transfer pipeline
    Since the goal here is the implement data sharing capability for users and organisations, an infrastructure was put in place to facilitate the ingestion and transformation (mapping, anonymisation, categorization etc.) of data sources prior to sharing the data. A scheduling module allows data source monitoring or systematic ingesting based on rules defined by the user. Once the ingestion is complete, the data is stored locally within the client in the form of strategically structured data ready to be shared. The purpose behind the restructuration of the data is sharing so it should be made clear that the data stored within the client cannot easily be read directly, it needs to be exported first. 
  • A peer to peer network
    The Commons client connects to the Orchestrator. Together, they form the Commons Network. Just like the Commons Client, the Orchestrator is a decentralized infrastructure that allows communications between peers. The network implements a strategy to optimise users' connections to specific Orchestrator endpoints so that load is properly distributed. The positioning of the resources on the cluster is also optimized by the network. When partners (peers) are connected, the Commons Client shares metadata regarding local application activities with partners to let their respective Commons Clients know the state of data users have subscribed to. This enables Commons Clients to interact together automatically, through the Orchestrator, and dynamically synchronise new versions of authorized data sources without requiring user intervention. Data owners can decide what to share and what to keep private on a per user basis. They can also decide to share with entire groups at once. 


On top of it's own default functionality, the Commons Client is affected by external platforms based on their activities. Let's Agree will enrich Commons Client's functionality by adding agreements and obligations to users making use of data that comes with restrictions. The Central Api is also used by both Commons Client and the Orchestrator in order to verify the permissions required to execute specific activities, access informations that belong to the users and integrate with Ledger to track and verify completed agreements.