export interface DeliveryMessage { id: string; organizationId: string; orderId: string; kind: string; } export abstract class DeliveryPort { abstract assertConfigured(): void; // Delivery is at-least-once. The adapter must deduplicate using message.id. abstract deliver(message: DeliveryMessage): Promise; }