Message Queues (RFC-073)
A period when the community can review the RFC (comment Docs)
Document Maintainers: Andi Gabriel Tan 2024. List of other contributors in Annex. 1.
Copyright: MIT license
Copyright © 2018-2024 Axiologic Research and Contributors.
This document is licensed under MIT license.
Abstract
The Message Queues “MQ” API space offers a set of portable functions for sending and receiving messages towards message queues identified by KeySSIs.
1. Message queues functions in OpenDSU
Function getMQHandlerForDID(didDocument, domain, timeout)
Description: Get an observable object that receives messages from the fromKeySSI if the asKeySSI has the rights to read those messages.
| Name | Type | Value | Description | 
|---|---|---|---|
| didDocument | The KeySSI from which you want to get the handler. | ||
| domain | string | *required | The blockchain domain. | 
| timeout | number(ms) | The amount of time before the request times out. | 
Returns
| Name | Description | 
|---|---|
| MQHandler object | 
2. APIHUB Endpoints
MappingEngine
    put /mappingEngine/domain/  < messages ( array of messages)
Notifications
    put /notification/send/domain/anchorID   < message signed by corresponding keyssi
    get /notification/get/domain/anchorID  > notification
Server settings:
    notification_expiration: 60 seconds
    notification_client_timeout : 60 (60 seconds)
    notification_maxSize: 1 (1k)
    notification_queue_length: 10
MQ
    put /mq/domain/put/hashDID/  < message
    get /mq/domain/nonce > nonce
    get /mq/domain/get/hashDID/nonce/signature_of_did  > {messageID, message}
    get /mq/domain/take/hashDID/nonce/signature_of_did  > message
    delete /mq/domain/delete/hashDID/messageID/signature_of_did
Server settings:
    mq_client_timeout: 60 (60 seconds)
    mq_nonce_from_smartcontract:false
    mq_nonce_from_expiring_uuid:true
    mq_nonce_expiration_time: 10 (10 seconds)
    mq_throttling: 2  (2  messages/second)
    mq_allow_ unregistered_did: false
    mq_maxSize: 10 (10k)
Hosting
    put /hosting/domain/mq/allow/hashDID/validatorSignature
    put /hosting/domain/mq/quota/hashDID/validatorSignature  < number of messages
    put /hosting/domain/mq/throttling/hashDID/validatorSignature  < number of messages/second
    put /hosting/domain/notifications/allow/anchorID/validatorSignature
Configurations files
    domain: validatorDID
Contributors
-  
Axiologic Research: New content and improvements. Original texts under PharmaLedger Association and Novartis funding. MIT licensed content accordingly with the contracts. Publish and maintain the www.opendsu.org site.
 -  
PharmaLedger Project: Review, feedback, observations, new content, and corrections MIT licensed accordingly with the consortium agreements.
 - PrivateSky Research Project: MIT licensed content accordingly with the contracts. https://profs.info.uaic.ro/~ads/PrivateSky/
 
Annex 1. Contributors
| Current Editors | |
|---|---|
| Sînică Alboaie | sinica.alboaie@axiologic.net | 
| Cosmin Ursache | cosmin@axiologic.net | 
| Teodor Lupu | teodor@axiologic.net | 
| Andi-Gabriel Țan | andi@axiologic.net | 
| Contributors Axiologic Research | |
| Adrian Ganga | adrian@axiologic.net | 
| Andi-Gabriel Țan | andi@axiologic.net | 
| Cosmin Ursache | cosmin@axiologic.net | 
| Daniel Sava | daniel@axiologic.net | 
| Nicoleta Mihalache | nicoleta@axiologic.net | 
| Valentin Gérard | valentin@axiologic.net | 
| PrivateSky Contributors | |
| Alex Sofronie | alsofronie@gmail.com (DPO) | 
| Cosmin Ursache | cos.ursache@gmail.com (UAIC) | 
| Daniel Sava | sava.dumitru.daniel@gmail.com (HVS, AQS) | 
| Daniel Visoiu | visoiu.daniel.g@gmail.com (SGiant) | 
| Lenuța Alboaie | lalboaie@gmail.com (UAIC) | 
| Rafael Mastaleru | rafael@rms.ro (RMS) | 
| Sînică Alboaie | salboaie@gmail.com (UAIC) | 
| Vlad Balmos | vlad.balmos@gmail.com (Code932) | 
| PharmaLedger Contributors | |
| Ana Balan | bam@rms.ro (RMS) | 
| Bogdan Mastahac | mab@rms.ro (RMS) | 
| Cosmin Ursache | cos@rms.ro (RMS) | 
| Michael Sammeth | |
| Rafael Mastaleru | raf@rms.ro (RMS) |