refactor(go): refactor go sdk errors#2159
Merged
Merged
Conversation
hubcio
previously approved these changes
Sep 9, 2025
numinnex
previously approved these changes
Sep 9, 2025
66b0aaf to
2d39d38
Compare
haze518
approved these changes
Sep 14, 2025
spetz
approved these changes
Sep 27, 2025
hageshiame
pushed a commit
to hageshiame/iggy
that referenced
this pull request
Nov 7, 2025
1. Aligned Error Codes and Information with the Rust SDK 2. Refactored IggyError: Discarded Sentinel Errors, Introduced Code(err error) Helper. 3. Updated Tests 4. Removed the Logic for Ignoring xxxAlreadyExists Errors, as referenced in [PR apache#604](apache#604).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What I Did
Rationale
Why Discard Sentinel Errors?
Iggy has hundreds of distinct error types, and maintaining a corresponding sentinel variable for each is a nightmare. Since we now standardize on using error codes, extracting them via the Code(err error) helper makes error handling much more scalable and maintainable.
For those who still prefer sentinel errors, I’ve also implemented an Is() function for error comparison, so users can create their own sentinel errors and use them with
errors.Is()function.Why Remove the Logic for Ignoring xxxAlreadyExists Errors?
I believe there’s no need to check for existence before attempting to create something. Instead, I can simply try to create it—if it already exists, the operation will return an error indicating so. I can then handle this error as needed, such as by returning, continuing, or applying other logic.
At least in Go, I don’t think such errors should be ignored by default, it's caller's job to handle it.