# BusInstance

A configured instance of a bus used to publish messages.

## Properties

### beforeSend

See [Lifecycle hooks](https://bus.node-ts.com/guide/lifecycle-hooks).

### beforePublish

See [Lifecycle hooks](https://bus.node-ts.com/guide/lifecycle-hooks).

### onError

See [Lifecycle hooks](https://bus.node-ts.com/guide/lifecycle-hooks).

### afterReceive

See [Lifecycle hooks](https://bus.node-ts.com/guide/lifecycle-hooks).

### beforeDispatch

See [Lifecycle hooks](https://bus.node-ts.com/guide/lifecycle-hooks).

### afterDispatch

See [Lifecycle hooks](https://bus.node-ts.com/guide/lifecycle-hooks).

### state

Gets the current state of the bus to see if it's started or stopped.

## Methods

### publish(event, \[messageAttributes])

Publishes an event to the bus, with an optional set of attributes to attach to the outgoing message.

#### Arguments

<table><thead><tr><th width="220.36412604232706">Argument</th><th width="342.81368434354914">Description</th><th width="150">Default</th></tr></thead><tbody><tr><td><code>event</code></td><td>The message to publish to the underlying transport</td><td>None</td></tr><tr><td><code>messageAttributes</code></td><td>An optional set of attributes that will be sent with the outgoing event</td><td>None</td></tr></tbody></table>

### send(command, \[messageAttributes])

Sends a command to the bus, with an optional set of attributes to attach to the outgoing message.

#### Arguments

<table><thead><tr><th width="220.36412604232706">Argument</th><th width="342.81368434354914">Description</th><th width="150">Default</th></tr></thead><tbody><tr><td><code>command</code></td><td>A message to send to the underlying transport</td><td>None</td></tr><tr><td><code>messageAttributes</code></td><td>An optional set of attributes that will be sent with the outgoing</td><td>None</td></tr></tbody></table>

### fail()

Instructs the bus that the current message being handled cannot be processed even with retries and instead should immediately be routed to the dead letter queue.

### start()

Instructs the bus to start reading messages from the underlying service queue and dispatching to message handlers.

### stop()

Stops a bus that has been started by `.start()`. This will wait for all running workers to complete their current message handling contexts before returning.

### dispose()

Stops and disposes all resources allocated to the bus, as well as removing all handler registrations. The bus instance cannot be used after this has been called.
