-
Notifications
You must be signed in to change notification settings - Fork 67
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
Refactor: break up replication into smaller modules #897
Refactor: break up replication into smaller modules #897
Conversation
# Conflicts: # api/v1/handlers.go # api/v1/pinning.go # api/v2/api.go # content/pinning.go # content/staging.go # main.go
# Conflicts: # api/v1/handlers.go # api/v1/pinning.go # content/content.go # content/gc.go # content/offloading.go # content/pinning.go # content/queue/queue.go # content/replication.go # content/retrieval.go # content/staging.go # shuttle/rpc/rpc.go
# Conflicts: # main.go
# Conflicts: # api/v1/handlers.go # api/v1/pinning.go # content/pinning.go # content/replication.go # main.go # pinner/pinning.go # shuttle/rpc/rpc.go
9f15134
to
39a274f
Compare
i tried to go through it as much as i was able to, but it's too difficult to properly review a PR of this size. The high level thought process and structure makes sense. |
…te and state for aggregate children
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor comments but everything looks good to me.
i tested the following and it work as expected
- pinning
- content
- collections
Thank you @en0ma. We should target to deploy this as soon as the other reviews are done.
This PR changes the flow from content upload to deal-making. It decomposes the replication logic into separate smaller modules that can all work in an isolated manner making them non-blocking and overall, the platform becomes more stable.
This also brings the added advantages of non-delayed deal-making as the deal queue is now persistent, with no need to rebuild it whenever the API is restarted.
Verifications