Sofya Developers

Jornal e reconexão

Jornal e reconexão

Pergunta: "o que acontece se a conexão cair enquanto o áudio está sendo capturado?"

A factory cria um DurableSessionJournal quando você não injeta um journal. O adapter persiste chunks, acompanha fronteiras confirmadas e, quando o transporte volta, pede ao jornal o replay a partir da fronteira comprometida. O journal é dono do plano e da contabilidade de replay; o adapter oferece somente o transporte para reenviar bytes.

import { createTranscriptionSession } from '@sofya-sdk/transcription';
import { createDurableSessionJournal } from '@sofya-sdk/transcription/journal';

const journal = createDurableSessionJournal();
const session = createTranscriptionSession('sofya_as_service', {
  auth: { endpoint: '<wss-url>' },
  journal,
  resilience: { maxReconnectAttempts: 3, reconnectBaseDelayMs: 500 },
});

session.on('reconnecting', ({ attempt, reason }) => console.log(attempt, reason));
session.on('reconnected', ({ attempt }) => console.log(attempt));
session.on('disconnected', ({ reason, willRetry }) => console.log(reason, willRetry));
await session.start();
await session.stop();

reconnecting.attempt e reconnected.attempt representam a mesma tentativa útil. Use disconnected.willRetry para diferenciar a queda que ainda terá reconexão daquela que já é terminal. O SDK não promete que o provider real foi smoke-testado neste fluxo; valide a jornada no ambiente controlado da sua integração.

O jornal durável guarda áudio localmente enquanto a sessão existe. A política de retenção, limpeza e consentimento é responsabilidade do aplicativo: não trate a durabilidade como autorização para reter dados clínicos além do necessário.

Last updated on

On this page