Working with iDDS

iDDS is an intelligent data delivery service orchestrating workflow and data management systems to optimize resource usage in various workflows. It is possible to use iDDS on top of PanDA as a high-level service to support various advanced workflows, such as

  • Fine-grained data carousel

  • Hyperparameter optimization among geographically distributed GPU resources

  • Task chaining with directed acyclic graph

You need to configure Message Processor in JEDI so that iDDS and PanDA can talk through ActiveMQ. There is a parameter in panda_jedi.cfg to specify the json configuration file for Message Processor.


# json config file of message processors
configFile = /etc/panda/jedi_msg_proc_config.json

The contents of the json is something like

    "mb_servers": {
        "iDDS_mb": {
            "host_port_list": [""],
            "use_ssl": false,
            "username": <user_name>,
            "passcode": <password>,
            "verbose": true
    "queues": {
        "idds": {
            "server": "iDDS_mb",
            "destination": "/queue/Consumer.jedi.atlas.idds"
    "processors": {
        "atlas-idds": {
            "enable": true,
            "module": "pandajedi.jedimsgprocessor.atlas_idds_msg_processor",
            "name": "IddsMsgProcPlugin",
            "in_queue": "idds",
            "verbose": true

where you specify the ActiveMQ server, user name, and password to connect to ActiveMQ, queue names, and plugins to consume messages from iDDS. See Each workflow has a separate plugin in the plugin repository. You choose appropriate plugins based on your needs.

A complete configuration guide for Message Processsor is availabe at the Using Message Processor page.