Skip to content

Cosmos: record Go v2 FFI decision#4802

Open
ananth7592 wants to merge 8 commits into
mainfrom
users/amudumba/go-v2-ffi-decision
Open

Cosmos: record Go v2 FFI decision#4802
ananth7592 wants to merge 8 commits into
mainfrom
users/amudumba/go-v2-ffi-decision

Conversation

@ananth7592

@ananth7592 ananth7592 commented Jul 17, 2026

Copy link
Copy Markdown
Member

Summary

Adds a standalone Go v2 decision record for proceeding with the Rust-driver FFI path in the current delivery window.

The doc captures:

  • why FFI is preferred for Go v2 now: Rust parity, delivery speed, and lower short-term implementation risk
  • what the pure-Go port spike proved, and why it remains useful as validation evidence rather than the shipping path
  • the Go-specific packaging implications, including the scoped mainstream OS/architecture matrix: six firm targets, Windows x86 as an optional consideration, and Linux musl/Alpine explicitly left to the packaging follow-up
  • a market reference point from confluent-kafka-go for bundling common native binaries while documenting special/manual native-library paths

Packaging mechanics remain in the native distribution ADR PR; this PR is the Go v2 direction decision that that packaging work can reference.

Record the Go v2 decision to proceed with the Rust-driver FFI path for the current delivery window. The document captures the pure-Go port alternative, packaging implications, tentative platform matrix, and native-library market precedent without folding the decision into the native distribution ADR PR.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f7d60272-a96c-48e4-9a85-6e918db6ac26
Copilot AI review requested due to automatic review settings July 17, 2026 20:24
@ananth7592
ananth7592 requested a review from a team as a code owner July 17, 2026 20:24
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
2 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions github-actions Bot added the Cosmos The azure_cosmos crate label Jul 17, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Records the Go v2 decision to use the Rust Cosmos driver through FFI.

Changes:

  • Documents rationale and pure-Go spike findings.
  • Outlines packaging targets, costs, and models.
  • Records consequences and non-goals.

Comment thread sdk/cosmos/azure_data_cosmos_driver/docs/go-v2-ffi/go-v2-ffi-exploration.md Outdated
Restructure the Go v2 FFI decision PR to match the ADR pattern used by the native distribution design. Keep the decision itself short and move the exploration, platform matrix, packaging discussion, and market reference into a separate discussion document.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f7d60272-a96c-48e4-9a85-6e918db6ac26
Copilot AI review requested due to automatic review settings July 17, 2026 20:29
Move the Go v2 FFI ADR set under docs/native-driver-distribution/go-native-distribution so it shares the same native-driver distribution root as the broader packaging ADRs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f7d60272-a96c-48e4-9a85-6e918db6ac26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 17, 2026 20:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

Address review feedback by making the cgo C-toolchain requirement explicit and by describing confluent-kafka-go as a bundle-first hybrid rather than precedent for a pure per-platform/manual dependency model.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f7d60272-a96c-48e4-9a85-6e918db6ac26
Copilot AI review requested due to automatic review settings July 17, 2026 20:43
Remove musl/Alpine from the fixed Go FFI platform matrix and clarify that platform footprint grows with supported targets. Also switch internal documentation links to absolute GitHub links for the repository link checker.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f7d60272-a96c-48e4-9a85-6e918db6ac26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 17, 2026 20:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 17, 2026 23:12
Clarify that the Go FFI exploration scopes the initial packaging estimate to the mainstream Windows, macOS, and Linux glibc targets. Linux musl/Alpine is not counted until the packaging plan decides whether it is in scope.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f7d60272-a96c-48e4-9a85-6e918db6ac26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Copilot AI review requested due to automatic review settings July 17, 2026 23:17
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f7d60272-a96c-48e4-9a85-6e918db6ac26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 17, 2026 23:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

@github-project-automation github-project-automation Bot moved this from Triage to Ready To Merge in CosmosDB Rust SDK and Driver Jul 20, 2026
@analogrelay

Copy link
Copy Markdown
Member

I don't think this really belongs in this repo. We should consider starting a branch for v2 work in azure-sdk-for-go and move this there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Cosmos The azure_cosmos crate

Projects

Status: Ready To Merge

Development

Successfully merging this pull request may close these issues.

4 participants