Skip to content
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

Update README #950

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Update README #950

wants to merge 5 commits into from

Conversation

dveeden
Copy link
Collaborator

@dveeden dveeden commented Nov 20, 2024

  • More clearly state that this should also work for MariaDB
  • Move migration info to the end of the README as there are probably not that many people anymore that need this
  • Add a go mod edit -replace to the migration section
  • Add more details to the "Content" section
  • List examples
  • Add a Go Reference badge
  • Improve the info about GTID in the replication example
  • Remove the donate and feedback sections
  • Add credits section

Open questions:

  • Should we update the "Donate" and "Feedback" sections?
  • Should the examples be listed next to the sections in the README or combined in a single section? My preferences is combined.
  • Should we link to https://github.com/go-mysql-org/go-mysql-elasticsearch ? It hasn't been maintained for a while.

@lance6716
Copy link
Collaborator

Should we update the "Donate" and "Feedback" sections?

I think @siddontang does not need donation from this project now 😄 We can setup our donation link but I'm not familiar with it. For feedback I guess most users of this package are golang developers and they can open GitHub issues without the feedback guide

Should the examples be listed next to the sections in the README or combined in a single section

The simple program under /cmd should also be helpful to new developers, I think we can only leave very short code snippet in README and link to /cmd for a more detailed usage. I'll think about this part later.

@dveeden
Copy link
Collaborator Author

dveeden commented Nov 21, 2024

@lance6716 GitHub offers this: https://github.com/sponsors but not sure if that's only for individuals or also for organizations. I'm not sure we need this.

@lance6716
Copy link
Collaborator

@lance6716 GitHub offers this: https://github.com/sponsors but not sure if that's only for individuals or also for organizations. I'm not sure we need this.

I checked that organization can have sponsors, but it requires an email as contact and a bank account 😂 It seems more suitable for a real organization rather than our virtual team. I'm not capable to handle these finance stuffs, maybe you or other organization members can handle this or we don't need sponsors for now.

I'll review README changes soon.

Copy link
Collaborator

@lance6716 lance6716 left a comment

Choose a reason for hiding this comment

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

rest lgtm

* [Fake server](#server)
* [database/sql like driver](#driver)
* [Replication](#replication) - Process events from a binlog stream.
* [Incremental dumping](#canal) - Sync from MySQL to Redis, Elasticsearch, etc.
Copy link
Collaborator

Choose a reason for hiding this comment

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

IMO the difference between this "Incremental dumping" and "Replication" item are developers need to implement interfaces (like EventHandler) or handle decoded binlog events. Maybe use "library mode" or "framework mode". I choose these two words to tell the difference like

When you use a library, you are in charge of the flow of the application. You are choosing when and where to call the library. When you use a framework, the framework is in charge of the flow. It provides some places for you to plug in your code, but it calls the code you plugged in as needed.

https://www.freecodecamp.org/news/the-difference-between-a-framework-and-a-library-bd133054023f/ (a random blog ranks top in google search "library vs framework")

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Not sure what you want me to change. Do you you want to clarify the difference between "Replication" and "Incremental dumping"?

Copy link
Collaborator

Choose a reason for hiding this comment

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

yes, like

* [Use as a library](#replication) - Process events from a binlog stream and have maximum functionalities.
* [Use as a framework](#canal) - Implement `EventHandler` interface to subscribe binlog changes

Copy link
Collaborator

Choose a reason for hiding this comment

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

However I don't have confidence how to describe these two items. Will think about it later

The `cmd` directory contains example applications that can be build by running `make build` in the root of the project. The resulting binaries will be places in `bin/`.

- `go-binlogparser`: parses a binlog file at a given offset
- `go-canal`: streams binlog events from a server to canal
Copy link
Collaborator

Choose a reason for hiding this comment

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

In fact I don't know what's canal 😂 maybe it's https://github.com/alibaba/canal?tab=readme-ov-file ? I'm not sure this library will output similar output or have similar usage as that one.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Looks like it might be similar, but I'm not sure it is the same or if it is compatible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants