New structure, persistance and recovery #2
Reference in New Issue
Block a user
No description provided.
Delete Branch "FIXPT-2/New_structure_and_persistance"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🐛 Reason to Be
Se agrega persistencia de mensajes FIX post-trade en PostgreSQL (qfixpt_messages como JSONB y qfixpt_logs como texto raw), tracking de estado de trades en
memoria (active/corrected/cancelled), recovery automático al reiniciar desde los mensajes del día, y nuevos endpoints REST para consultar trades y sus logs.
Resolves #FIXPT-2
✅ Expected Behaviour
Trade lifecycle con estados:
active,correctedycancelledbasados enTradeReportType(101=confirm, 103=correction,104=cancel)
GET /tradesdevuelve solo trades activosGET /trades/alldevuelve todos los trades con su statusGET /trades/:tradeID/logsdevuelve raw FIX messages (IN/OUT) para un trade específicoPersistencia:
qfixpt_messages: almacena mensajes FIX estructurados como JSONB (TradeCaptureReport, AllocationReport, Confirmation)qfixpt_logs: almacena raw FIX messages concatenados por trade (upsert con append)db.sql)parseTradeCaptureReportJSON,parseAllocationReportJSON,parseConfirmationJSONRecovery al startup:
loadTrades()reconstruye el estado de todos los trades del día desdeqfixpt_messagestotalTradesyactiveTradesCorrelación cross-message:
onRawMessagecaptura mensajes IN/OUT para el logCambios en DB:
qfixpt_messagescon índices entrade_idycreated_atqfixpt_logscontrade_idUNIQUE (append-only upsert)📋 How To Test
qfixpt_messagescomo JSONBqfixpt_logsGET /tradessolo devuelve trades con statusactiveGET /trades/alldevuelve trades en todos los estadosGET /trades/:tradeID/logsdevuelve el historial de raw messages