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