# Types & Errors (/sdks/nodejs/reference/types-and-errors)



## Message factory functions [#message-factory-functions]

| Function                        | Description            |
| ------------------------------- | ---------------------- |
| `createEventMessage(opts)`      | Fire-and-forget events |
| `createEventStoreMessage(opts)` | Durable events         |
| `createQueueMessage(opts)`      | Queue payloads         |
| `createCommand(opts)`           | Command RPC            |
| `createQuery(opts)`             | Query RPC              |

## Error hierarchy [#error-hierarchy]

| Error Class           | Retryable | Description         |
| --------------------- | --------- | ------------------- |
| `ConnectionError`     | Yes       | Broker unreachable  |
| `KubeMQTimeoutError`  | Yes       | Operation timed out |
| `ThrottlingError`     | Yes       | Rate limited        |
| `AuthenticationError` | No        | Invalid credentials |
| `AuthorizationError`  | No        | Permission denied   |
| `ValidationError`     | No        | Invalid request     |
| `NotFoundError`       | No        | Channel missing     |
| `KubeMQError`         | Varies    | Base class          |

Every error exposes `isRetryable`, `code`, and optional `suggestion` fields.

## Resources [#resources]

* [GitHub Repository](https://github.com/kubemq-io/kubemq-js)
* [npm Package](https://www.npmjs.com/package/kubemq-js)
* [Examples](/sdks/nodejs/how-to)

## See Also [#see-also]

* [Node.js SDK Getting Started](/sdks/nodejs)
