# Config.json

The config.json is the primary configuration file that holds all required settings in order to run an Exivity instance or node successfully. The`config.json`is divided into several sections related to the individual Exivity software components (i.e. `database`, `mq`, etc) and is typically created and modified by the installer. However, in some situations such as multi-node setups, it is required to change this configuration file in order to support different workloads on different nodes. Also when migrating to a different PostgreSQL database or RabbitMQ cluster, it would be required to change the database or mqrelated settings in the `config.json`configuration file.

### db

The `db` section contains the settings for the PostgreSQL database engine where the Exivity database is hosted:

```
"db": {
		"driver": "postgres",
		"parameters": {
			"host": "localhost",
			"port": "5432",
			"sslmode": "disable",
			"dbname": "exdb",
			"user": "postgres",
			"password": "secretpassword",
			"connect_timeout": "10",
			"target_session_attrs": "read-write"
		}
	}
```

### **mq**

The `mq` section contains the settings for the RabbitMQ message engine:

```
"mq": {
		"servers": [
			{
				"host": "localhost",
				"port": 5672,
				"secure": false
			}
		],
		"user": "guest",
		"password": "guest",
		"vhost": "/",
		"nodeID": "mqnode01",
		"redialPeriod": 5
	}
```

### griffon

The `griffon`section contains settings for the `Exivity Job Manager`:

```
"griffon": {
		"heartbeatPeriod": 5,
		"TTL": 10
	}
```

### chronos

The `chronos` section stores information related to the Exivity Scheduling Service:&#x20;

```
	"chronos": {
		"heartbeatPeriod": 5,
		"TTL": 60
	}
```

### merlin

The `merlin` section contains all parameters related to backend components:

```
	"merlin": {
		"reservedCPU": 1,
		"heartbeatPeriod": 5,
		"programs": {
			"extract": {
				"path": "bin\\use.exe",
				"queue": "EXTRACT",
				"CPU": 0.25,
				"RAM": 100,
				"params": "${params}"
			},
			"transform": {
				"path": "bin\\transcript.exe",
				"queue": "TRANSFORM",
				"CPU": 0.5,
				"RAM": 250
			},
			"report": {
				"path": "bin\\edify.exe",
				"queue": "REPORT",
				"CPU": 1,
				"RAM": 500
			},
			"horizon": {
				"path": "bin\\horizon.exe",
				"queue": "BUDGET",
				"CPU": 0.5,
				"RAM": 50
			},
			"execute": {
				"path": "${program}",
				"queue": "EXECUTE",
				"CPU": 0.25,
				"RAM": 100
			},
			"proximity": {
				"path": "server\\php\\php.exe",
				"queue": "PROXIMITY",
				"CPU": 0.5,
				"RAM": 1000
			},
			"pigeon": {
				"path": "server\\php\\php.exe",
				"queue": "PIGEON",
				"CPU": 0.25,
				"RAM": 250
			},
			"workflow_ended": {
				"path": "server\\php\\php.exe",
				"queue": "WORKFLOW_EVENT",
				"topic": "evt.workflow_status.griffon.#",
				"params": "common\\pigeon\\pigeon.phar event:post workflow_ended `${payload}`",
				"CPU": 0.25,
				"RAM": 250
			},
			"report_published": {
				"path": "server\\php\\php.exe",
				"queue": "REPORT_PUBLISHED",
				"topic": "evt.report_published.proximity.#",
				"params": "common\\pigeon\\pigeon.phar event:post report_published `${payload}`",
				"CPU": 0.25,
				"RAM": 250
			}
		}
	}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://olddocs.exivity.io/3.5.4/advanced/digging-deeper/config-json.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
