# Using nodes

Copy as Markdown[View as Markdown](/docs/studio/diagrams/using-nodes.md)

***

### How to add nodes to your diagram[​](#how-to-add-nodes-to-your-diagram "Direct link to How to add nodes to your diagram")

Nodes in EventCatalog Studio are the building blocks of your diagram.

To add a node to your diagram, click the highlighted button in the diagram. This will open a sidebar with all the available nodes.

![Add node](/assets/images/add-node-47fa7cb24ddddbf24bdd3d0b63e0d5bf.png)

Then you can drag and drop the node onto your diagram, and start to connect nodes together.

### Editing node values[​](#editing-node-values "Direct link to Editing node values")

To edit the values of a node, click on the node on the canvas, and click the `Edit` button.

Each node has a different set of values that can be edited, once you made your changes, click the `Save` button to save your changes.

![Edit node](/assets/images/edit-node-4fdd3be3b4fa29631f2322e024ab28b1.png)

More node types and values coming soon

We are working on adding more node types, and more values that can be edited (e.g Schemas to Message nodes)

If we are missing a node type or a value that you need, please [raise an issue](https://github.com/event-catalog/eventcatalog-studio/issues) or [join our Discord community](https://eventcatalog.dev/discord) to let us know.

### Editing label between nodes[​](#editing-label-between-nodes "Direct link to Editing label between nodes")

By default, the label between nodes is created by EventCatalog Studio, based on the node types and values.

To edit the label between nodes, click on the text between the nodes, and start typing.

![Edit label](/assets/images/edit-edge-619d67cf73393ac42382688e858bdd5a.png)

### Quickly finding nodes in your diagram[​](#quickly-finding-nodes-in-your-diagram "Direct link to Quickly finding nodes in your diagram")

To quickly find a node in your diagram, you can use the canvas selector from the sidebar.

![Search node](/assets/images/canvas-selector-bda712f1809e84a7f007277783c076cb.png)

### Node Definitions[​](#node-definitions "Direct link to Node Definitions")

List of nodes and what they are used for.

* **Service** - Represents a service (e.g a Microservice, function, etc).

  <!-- -->

  * Typically a service can receive and send events, commands and queries.
  * A service may represent a microservice, a function, or some compute.

* **Event** - An immutable fact that has happened.

  <!-- -->

  * Events can be produced and consumed by services.
  * Events are typically orange following the EventStorming conventions.

* **Command** - A request to do something. Commands can be rejected.

  <!-- -->

  * Commands can be produced and consumed by services.
  * Commands are typically blue following the EventStorming conventions.
  * Example of a Command would be `PlaceOrder` or `CancelOrder`
  * Common examples are seen over HTTP protocols (e.g POST, PUT, DELETE, etc).

* **Query** - A request to get something.

  <!-- -->

  * Queries can be produced and consumed by services.
  * Example of a Query would be `GetOrder` or `GetPayment`.
  * Common examples are seen over HTTP protocols (e.g GET).

* **External System** - Represents an external system (e.g a third-party system)

  <!-- -->

  * External systems can be produced and consumed by services.
  * External systems are typically pink following the EventStorming conventions.
  * Example of an External System would be `Stripe` or `PayPal`.

* **Data** - Represents a data source (e.g a database, a file, a queue, etc)

  <!-- -->

  * Data can be linked to any node type.
  * Example of a Data would be `Order Data` or `Payment Bucket`.
  * Common examples are databases, storage buckets, etc.

* **View** - Represents a view (e.g a UI, a dashboard, etc)

  <!-- -->

  * Views can be linked to any node type.
  * Example of a View would be `Order View` or `Payment View`.
  * Common examples are UI, dashboards, etc.

* **Actor** - Represents an actor (e.g a person)

  <!-- -->

  * Actors are typically yellow following the EventStorming conventions.
  * Example of an Actor would be `User` or `Admin`.
  * Actors are typically used to represent a person who executes a command or flow.

**Utility nodes:**

* **Note** - Represents a note (e.g post-it note)

  <!-- -->

  * Notes can be placed anywhere on the diagram.
  * Notes can be used to give extra context to your diagram.

* **Textbox** - Simple textbox that can be used to add text to your diagram.

  <!-- -->

  * Textboxes can be placed anywhere on the diagram.
  * Textboxes can be used to add text to your diagram.

* **Comment** - Represents a comment/thread

  <!-- -->

  * Comments can be placed anywhere on the diagram.
  * You can use comments to capture peoples conversations/thoughts on your diagram.
