diff options
author | Andrew Newdigate <andrew@troupe.co> | 2017-01-23 19:38:34 +0300 |
---|---|---|
committer | Andrew Newdigate <andrew@troupe.co> | 2017-01-23 19:38:34 +0300 |
commit | cb7e761674a8a4fee73fa011e0551b2c03ba3c4e (patch) | |
tree | 89450fc61cfbd93a8b73aaf35cc048fcceb2b7f1 | |
parent | 87e5016ff285a174e7a80a5607205bce5148a806 (diff) | |
parent | 1e7eb834c6f9d3f2c4772c46872774dd9fda2ac8 (diff) |
Merge branch 'master' of gitlab.com:gitlab-org/gitaly into an-readme-update-2017-01-20
-rw-r--r-- | README.md | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -112,6 +112,7 @@ All design decision should be added here. 1. GitLab already has [logic so that the application servers know which file/git server contains what repository](https://docs.gitlab.com/ee/administration/repository_storages.html), this eliminates the need for a router. 1. Use [gRPC](http://www.grpc.io/) instead of HTTP+JSON. Not so much for performance reasons (Protobuf is faster than JSON) but because gRPC is an RPC framework. With HTTP+JSON we have to invent our own framework; with gRPC we get a set of conventions to work with. This will allow us to move faster once we have learned how to use gRPC. 1. All protocol definitions and auto-generated gRPC client code will be in the gitaly repo. We can include the client code from the rest of the application as a Ruby gem / Go package / client executable as needed. This will make cross-repo versioning easier. +1. Gitaly will expose high-level Git operations, not low-level Git object/ref storage lookups. Many interesting Git operations involve an unbounded number of Git object lookups. For example, the number of Git object lookups needed to generate a diff depends on the number of changed files and how deep those files are in the repository directory structure. It is not feasible to make each of those Git object lookups a remote procedure call. ## Iterate |