# EventBridge API

Event transport adapter contract used by PURISTA services.

---
Canonical: /handbook/api/interfaces/_purista_core.EventBridge/
Source: core/EventBridge/types/EventBridge.ts
Format: Markdown for agents
---

Event transport adapter contract used by PURISTA services.

Package: `@purista/core`

## Signature

```typescript
interface EventBridge
```

## Members

### Properties

- `capabilities: EventBridgeCapabilities` — Runtime capability matrix used for strict startup validation.
- `defaultCommandTimeout: number` — The default time until when a command invocation automatically returns a time out error
- `instanceId: string` — Stable runtime instance id used to distinguish bridge processes.
- `name: string` — Human-readable bridge name used in logs, traces, and metrics.

### Methods

- `destroy(): Promise<void>` — Shut down event bridge as gracefully as possible
- `emitMessage(message: Omit<EBMessage, "id" | "timestamp" | "correlationId">): Promise<Readonly<EBMessage>>` — Emit a message to the event bridge without awaiting a result.
- `getInFlightExecutionCount(): number` — Number of currently running handlers across all work kinds.
- `getInFlightExecutionCounts(): InFlightExecutionCounts` — Number of currently running handlers grouped by work kind.
- `getPausedSubscriptionConsumers(): PausedSubscriptionConsumersByRegistrationKey` — Returns paused subscription consumer states keyed by adapter registration key.
- `invoke<T>(input: Omit<Command, "id" | "messageType" | "timestamp" | "correlationId">, ttl?: number): Promise<T>` — Call a command of a service and return the result of this command
- `isHealthy(): Promise<boolean>` — Indicates if the eventbridge is running and works correctly
- `isReady(): Promise<boolean>` — Indicates if the eventbridge has been started and is connected to underlaying message broker
- `openStream<Chunk, Final>(input: Omit<StreamOpenRequest, "id" | "messageType" | "timestamp" | "correlationId">, ttl?: number): Promise<StreamHandle<Chunk, Final>>` — Open a stream invocation.
- `registerCommand(address: EBMessageAddress, cb: (message: { contentEncoding: string; contentType: string; correlationId: string; eventName: string; id: string; messageType: Command; ... }) => Promise<Readonly<Omit<unknown, unknown>> | Readonly<Omit<unknown, unknown>>>, metadata: CommandDefinitionMetadataBase, eventBridgeConfig: DefinitionEventBridgeConfig): Promise<string>` — Register a command handler for a service target.
- `registerStream(address: EBMessageAddress, cb: (message: StreamMessage) => Promise<void>, metadata: StreamDefinitionMetadataBase, eventBridgeConfig: DefinitionEventBridgeConfig): Promise<string>` — Register a service stream handler for a service target.
- `registerSubscription(subscription: Subscription, cb: (message: EBMessage) => Promise<Omit<{ contentEncoding: unknown; contentType: unknown; correlationId: unknown; eventName: unknown; id: unknown; messageType: unknown; ... }, unknown | unknown> | undefined>): Promise<string>` — Register a new subscription.
- `resumeSubscriptionConsumer(registrationKey: string): Promise<void>` — Resumes a paused subscription consumer by registration key.
- `start(): Promise<void>` — Start the eventbridge and connect to the underlaying message broker
- `unregisterCommand(address: EBMessageAddress): Promise<void>` — Unregister a service command
- `unregisterStream(address: EBMessageAddress): Promise<void>` — Unregister a service stream
- `unregisterSubscription(address: EBMessageAddress): Promise<void>` — Unregister a subscription.
