Skip to content

Conversation

SupernaviX
Copy link
Contributor

@SupernaviX SupernaviX commented Mar 11, 2025

Context

FireFly Core is adding support for "resilient receipts"; it will expect the connector to include operation status updates in a batch of messages, and for the connector to resend that batch if it isn't acked.

Update the Cardano connector to support this.

Important Changes Introduced

  • All operation status updates are stored in sqlite, identified by a ULID.
  • Operation status updates are now included in message batches with other events, and are no longer sent by themselves.
  • Stream checkpoints include a last_operation_id field, which is a high-water-mark for operation updates seen by the consumer. Any operation updates which have happened after a stream's last_operation_id are included in its next batch of messages. The checkpoint's last_operation_id is only updated on ack.

This PR also fixes the docker compose setup for running against a local cardano node; it was flaky before, would only properly set the node up half the time.

@SupernaviX SupernaviX marked this pull request as ready for review March 11, 2025 22:06
@SupernaviX SupernaviX requested a review from a team as a code owner March 11, 2025 22:06
Quantumplation
Quantumplation previously approved these changes Mar 11, 2025
@SupernaviX SupernaviX merged commit e3287f1 into main Mar 11, 2025
7 checks passed
@SupernaviX SupernaviX deleted the batch-receipts branch March 11, 2025 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants