# Running a Blueprint Cluster

## Running a Standard Blueprint Cluster

It is not hard to run a Blueprint cluster. It's as simple as passing a command-line argument to the NodeJS application.

```bash
node ./app --cluster
```

The above command will launch a Blueprint cluster that has 1 master process and *N* worker processes where *N* is the number of cores available on the host machine. For example, if the host machine has 64 cores (or processing units), then it will launch 1 master process and 64 worker processes.

{% hint style="info" %}
Blueprint cluster uses `os.cpus()` to detect the number of cores on the host machine.
{% endhint %}

## Controlling the Number of Worker Processes

You can also pass a positive integer to the `--cluster` argument to limit the number of worker processes spawned by the master process.

```bash
node ./app --cluster=8
```

In the example above, the master process will spawn 8 worker processes. You can pass a positive integer that is greater than the number of cores available on the host machine. For example, a host machine can have 8 cores, but you pass the argument `--cluster=12`. In such cases, we will display a warning message. We do not restrict this behavior because you have more domain knowledge about your application and its behavior. We just do not recommend spawning more worker processes than cores available on the host machine to ensure the worker processes are not competing for processing time.


---

# 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://blueprint.onehilltech.com/developer-guide/blueprint-cluster/running-a-blueprint-cluster.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.
