-
Notifications
You must be signed in to change notification settings - Fork 1
Repo API: Bulk read/write #25
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
Comments
Do we care about Command Query Responsibility Segregation (https://www.martinfowler.com/bliki/CQRS.html), i.e. different APIs for read and write access? Seems to be popular especially with highly scalable systems. |
I think it's unavoidable if we want to enable collaborative editing. Even when using CRDTs it's useful to separate the intent of performing some edit action from the determination of that edit action being consistent with persisted state and (possibly) other edit actions. |
I have no experience with web-based systems. Would "different API" mean something like "use POST instead of GET", "have another fragment in my URL" or more like "completely different URL, possibly another server"? |
How do we report back unknown ids? (Relates to discussion about resolve info) |
@enikao I think that we need to decide how to report errors in general. And of course we need the list of potential error that may be reported back. |
Inspired by @joswarmer comment I created this issue: #74 |
relates to #127 |
Asking for nodes that do not exist in the repository is not an error, but a normal thing. Consider the following use cases:
Therefore, I think we should not explicitly report back unknown nodes. The client can simply check whether a requested node is in the returned chunk or not. |
Spec in #167 |
Ask the model repository for some subset of the stored model, and update it.
Assumptions for time being
Assumptions
Conceptual API
Independent of implementation (will most probably be REST, but could also use Protobuf etc.)
retrieve part of model
in: (list of) node IDs
in: mode {node, subtree, closure}
out: (list of) subgraph(s)
store part of model
in: (list of) subgraph(s)
out: success
Give me a range of IDs I can use
TODO:
in: Number of ids required
out: list of reserved ids
The text was updated successfully, but these errors were encountered: