-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Destinations: Refreshes: CDK updates #38067
base: master
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
9f8ae69
to
50c1e4b
Compare
50c1e4b
to
e857ce6
Compare
This stack of pull requests is managed by Graphite. Learn more about stacking. |
DestinationSyncMode.APPEND_DEDUP, | ||
primaryKey, | ||
Optional.of(cursor), | ||
COLUMNS | ||
COLUMNS, | ||
0, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe we should use nonzero generation id, so that tests are slightly more stringent?
DestinationSyncMode.OVERWRITE, | ||
mock(), | ||
mock(), | ||
mock() | ||
mock(), | ||
0, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for a later stacked PR: I think we need to add generation-related logic into DefaultTyperDeduper? so we'll want more test cases in this class...
e857ce6
to
982948e
Compare
import java.util.* | ||
import kotlin.collections.LinkedHashMap | ||
|
||
data class StreamConfig( | ||
val id: StreamId, | ||
val syncMode: SyncMode, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is the source sync mode, which we should never look at. Delete it.
6839b3f
to
d361d45
Compare
a3bb96c
to
eca8010
Compare
7aff2a5
to
2047aec
Compare
eca8010
to
7058132
Compare
2047aec
to
2f4b6ac
Compare
7058132
to
1306644
Compare
05d9bec
to
dd63e36
Compare
0dec7ae
to
52d7ac0
Compare
2c017cc
to
5c99a98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@airbytehq/destinations wdyt about:
- add a constructor param
supportsRefreshes: Boolean = false
- add
if (!supportsRefreshes) { throw IllegalArgumentException() }
to the constructor
this would mean:
- connectors have to explicitly opt into the new behavior
- there's no way to accidentally release a connector without refreshes support, but using a new CDK version
- I don't think our tests would catch this currently, since we're using
expectedrecords.jsonl
files defined in each connector?
- I don't think our tests would catch this currently, since we're using
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens to the existing connectors which still want to move to new CDK but refreshes not yet implemented ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
they don't :P
do we want to build full backwards-compat logic? I think that's doable, just kind of annoying. And we already want to build refresh support in all our certified connectors, so... do we care strongly about the rest?
backwards compat would roughly require:
- AsyncStreamConsumer needs to toggle default stream status
- CatalogParser toggles the
please upgrade platform
error and sync mode override - AbstractStreamOp toggles between new/old behavior (or we just create a separate AbstractNonRefreshStreamOp, idk - it's sufficiently different that I don't know how much makes sense to share)
- ... tests are probably really annoying
52d7ac0
to
5304f0e
Compare
5c99a98
to
cd81f59
Compare
5304f0e
to
2b5001c
Compare
cd81f59
to
cf625ed
Compare
2b5001c
to
92b3ce9
Compare
cf625ed
to
b22e6e0
Compare
92b3ce9
to
eef7413
Compare
b22e6e0
to
9dd4a9d
Compare
eef7413
to
eed66f8
Compare
9dd4a9d
to
ea03c9b
Compare
eed66f8
to
da3e829
Compare
ea03c9b
to
f00bab9
Compare
da3e829
to
39971f7
Compare
f00bab9
to
0850f44
Compare
39971f7
to
292aa89
Compare
0850f44
to
e7f351c
Compare
292aa89
to
bc71af7
Compare
e7f351c
to
5f84378
Compare
5f84378
to
8234563
Compare
8234563
to
21ed84f
Compare
21ed84f
to
12be697
Compare
closes https://github.com/airbytehq/airbyte-internal-issues/issues/7606
These are the changes that break platform compatibility. We shouldn't release this until platform is ready for it, and we can turn on the
supportsRefreshes
metadata in destinations.