hi <@U04S8PLJWMT>, Can i create a java?GO-based c...
# replication-ask-ai
h
hi @kapa.ai, Can i create a java?GO-based connector using CDK ? IS there support for it ?
k
You can, but with important caveats. Java • Historically, Airbyte provided a Java CDK and recommended it for database sources/destinations. [Connector dev 2.0] • In the current “Connector Development” docs, Airbyte explicitly says: “Airbyte is revamping the Java CDK and does not currently accept Java CDK contributions.” [Connector dev (latest)] • A forum thread about creating a Java destination template confirms there is no generator/template available right now because the Java CDK destination is being revamped. [Java destination template] So: you can build Java-based connectors for your own use, but official Java CDK support is in flux and contributions are not currently accepted. Go (Golang) • Airbyte’s official CDKs are Python (for sources) and the Java CDK (being revamped). [Connector dev (latest)] • A user building a Go destination was told there is *no example in the main repo besides Python or Java*; they were pointed to community-maintained CDKs instead. [Golang destination thread] • The docs state that connectors can be written in any language if you implement the Airbyte Docker protocol yourself, but this is outside the official CDKs. [Custom/new connector] So: you can create a Go-based connector by implementing the Airbyte protocol in your own Docker image, but there is no official Go CDK. Recommended path • For HTTP API sources: use Connector Builder or Low-code CDK. • For most custom code: use the Python CDK. • Only use Java or Go if you have strong reasons and are comfortable working without full CDK tooling and examples. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
h
@kapa.ai Airbyte does not have pause/resume sync feature. Is there any way we can do pause/resume? If yes , please provide the approach ? Can we provide functionality of pause/resume sync in custom python /java cdk code ?
k
The knowledge sources you provided only cover resumability and resumable full refresh, not an explicit “pause/resume sync” feature or API. What is documented: • Airbyte syncs are designed to be resumable: if something goes wrong during a sync attempt, Airbyte will automatically retry from a checkpoint, and may deliver records more than once (at-least-once delivery). [Resumability concept] • Resumability is implemented by chunking work with a cursor-like mechanism (e.g., CTID ranges in Postgres, or paginated API calls) so that a failed attempt can restart from the last successful chunk. [Resumability concept] • For Resumable Full Refresh in the Python CDK, a stream: ◦ Inherits from
CheckpointMixin
and implements state methods. ◦ Implements
Stream.read_records()
to: i. Read the current state (synthetic cursor like page number / next cursor), ii. Request a single page of records, iii. Update state with the next page to fetch or
{}
. [Resumable FR CDK] This gives you automatic resume on failure, but the docs do not describe: • Any user-facing “pause” control that stops a running sync and later resumes it mid-stream. • Any CDK hook or API to implement a custom pause/resume mechanism in Python or Java. So, based on the available docs: • You cannot implement a formal “pause/resume sync” feature purely via CDK code in a documented/supported way. • What you can do in custom connectors is: ◦ Implement incremental or resumable full refresh streams with proper state and cursors, so that if a sync is interrupted (e.g., fails, is stopped, or times out), the next sync run will continue from the last checkpointed state rather than starting from scratch. [Resumability concept; Resumable FR CDK] If you need a true interactive pause/resume control or a way to programmatically pause a running job and later resume the same attempt, the knowledge sources do not describe such a capability, nor how to add it via custom Python/Java CDK code. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.