Hey y’all! Another question about building my own ...
# replication-troubleshooting
e
Hey y’all! Another question about building my own destination connector. How does airbyte expect destinations to behave in the case of partial failure in full refresh overwrite mode? Is it assumed that the destination tables are deleted before any writes begin? These docs suggest that partial success from the emitted message would result in the next sync picking up where that one left off. If the data is deleted and failure happens before anything is written, the destination could be in an empty state. Is that valid? And if it fails after one record is written, and the next time it picks up after that record but does a full refresh with overwrite, it would end up missing the first record, right? That seems like an incorrect state for the destination tables to be in…
n
Hey Emma, here's a post on sync failure that might be helpful: https://discuss.airbyte.io/t/what-happens-if-a-sync-fails/77 Airbyte creates temp tables during sync and these are not cleaned up when the sync fails, but we're hoping to fix that: https://github.com/airbytehq/airbyte/issues/7011 I believe the doc you linked to is talking specifically about incremental syncs. Here is a doc that explains full refresh and state better: https://docs.airbyte.com/understanding-airbyte/airbyte-protocol/#source-sync-modes Source Sync Modes •
incremental
- send all the data for the Stream since the last sync (e.g. the state message passed to the Source). This is the most common sync mode. It only sends new data. •
full_refresh
- resend all data for the Stream on every sync. Ignores State. Should only be used in cases where data is very small, there is no way to keep a cursor into the data, or it is necessary to capture a snapshot in time of the whole dataset. Be careful using this, because misuse can lead to sending much more data than expected. Hope this helps!