-
Notifications
You must be signed in to change notification settings - Fork 413
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
SQLite driver #433
Comments
I remember discussing with someone who is all "drivers" in one repo in a similar project, and it's a pain 😅 It's a good question if it should be in https://github.com/ThreeDotsLabs/watermill-sql repo or a separate one - we would need to consider tradeoffs.
@m110 pointed me to https://github.com/walterwanderley/watermill-sqlite - you may take a look at it as a reference, but as far as I understand, it depends on a driver that depends on CGO? So https://github.com/zombiezen/go-sqlite sounds like a nice alternative! It would be just perfect to not expose details of that library anywhere - so we could eventually swap the driver in the future if possible. I'm not sure if you know this link, but it could be useful for you: https://watermill.io/docs/pub-sub-implementing/ |
This package uses an interesting approach. I guess you just need this and you "bring your own" stdlib compatible connection? Don't see any driver referenced. modernc.org/sqlite (https://pkg.go.dev/modernc.org/sqlite) is a SQL compatible driver with no cgo dependency that works very well, but I will be looking into the zombiezen package to see what benefits it carries. |
Ah I see zombiezen package uses the modernc driver. FWIW I think there's a strong case to use modernc.org driver directly within the primary watermill-sql package for ease of maintenance, but I would be very interested to compare the two using the watermill benchmarks! |
I am moving back to Ukraine, will follow up in a few months. |
@roblaszczak, @m110 I hope to contribute an SQLite driver some time this summer. I am opening this issue to collect ideas and to hear suggestions from you and the community. Two questions to kick off:
go.mod
file. Another project wouldn't be able to use them as they are too specific. Nonetheless, how would like me to go about implementation? Follow the same pattern?The text was updated successfully, but these errors were encountered: