Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Versioning on invocations serialized to the database #628

Open
mwkent opened this issue Apr 30, 2024 · 0 comments
Open

Versioning on invocations serialized to the database #628

mwkent opened this issue Apr 30, 2024 · 0 comments

Comments

@mwkent
Copy link

mwkent commented Apr 30, 2024

Hello,

I ran into an issue with the following scenario:

  1. A record gets written to the outbox table in the database.
  2. The record fails to process but remains unblocked.
  3. New code is deployed that will expect something different with the invocation column of a record in the database (e.g., an argument now contains field B instead of field A).
  4. The old record is attempted to be processed using the new code but can no longer be deserialized due to the changes deployed in the latest code.

Based on the above scenario, I am ultimately wondering if there is any way currently to support some form of versioning on records that get written to the database and how those older records would be processed if new code was deployed.

As a side note related to this, I noticed that if deserialization of a record does fail in the flush call, it looks like an exception is thrown, which will halt any further processing of records in that same flush call. Is there a way to skip processing of records that will throw an exception in the flush call. Otherwise, it seems like any processing of records would be halted until the issue with the specific problem record was resolved.

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

No branches or pull requests

1 participant