{"action":"created","issue":{"url":"https://api.github.com/repos/openzipkin/openzipkin.github.io/issues/23","repository_url":"https://api.github.com/repos/openzipkin/openzipkin.github.io","labels_url":"https://api.github.com/repos/openzipkin/openzipkin.github.io/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/openzipkin/openzipkin.github.io/issues/23/comments","events_url":"https://api.github.com/repos/openzipkin/openzipkin.github.io/issues/23/events","html_url":"https://github.com/openzipkin/openzipkin.github.io/issues/23","id":147240818,"number":23,"title":"Unify architecture terminology","user":{"login":"abesto","id":59982,"avatar_url":"https://avatars.githubusercontent.com/u/59982?v=3","gravatar_id":"","url":"https://api.github.com/users/abesto","html_url":"https://github.com/abesto","followers_url":"https://api.github.com/users/abesto/followers","following_url":"https://api.github.com/users/abesto/following{/other_user}","gists_url":"https://api.github.com/users/abesto/gists{/gist_id}","starred_url":"https://api.github.com/users/abesto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abesto/subscriptions","organizations_url":"https://api.github.com/users/abesto/orgs","repos_url":"https://api.github.com/users/abesto/repos","events_url":"https://api.github.com/users/abesto/events{/privacy}","received_events_url":"https://api.github.com/users/abesto/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-04-10T17:03:48Z","updated_at":"2016-04-12T15:36:25Z","closed_at":null,"body":"(See #18 for history)\r\n\r\nNames for some of the Zipkin components are not clear or overloaded. This is a proposal for an unambiguous terminology.\r\n\r\n### Goals\r\n\r\n * Give components names that describe their purpose\r\n * One name belongs to exactly one component\r\n * Names should have as little coupling to implementation details as possible\r\n\r\n### Proposed nouns\r\n\r\nThe Zipkin components here may be running in one process, in one process per component, or in any setup in between, depending on the specific implementation and deployment strategy.\r\n\r\n * *reporter*: anything sending tracing data to Zipkin\r\n * *transport*: protocol used to send tracing data (HTTP, Kafka, Scribe, etc)\r\n * *receiver*: Zipkin component that accepts tracing data from *reporters* over one or more *transports*\r\n * *storage*: Zipkin component providing a read-write API to the underlying *database*. Consumed *receiver* and *api*.\r\n * *database*: ElasticSearch, MySQL, Cassandra, etc\r\n * *api*: Zipkin component providing an HTTP API to the *ui* for accessing tracing data\r\n * *ui*: Zipkin component providing access to tracing data (static single-page app, browser extensions, etc.)\r\n\r\n### Used in a sentence\r\n\r\nReporters send trace data via one of several transports to the Zipkin receiver, which persists trace data to a database via the storage component. Later, storage is queried by the API to provide data to the UI.\r\n\r\n### Graph\r\nArrows depict direction of data flow.\r\n\r\n![graph](https://cloud.githubusercontent.com/assets/59982/14412539/258f63f0-ff65-11e5-90a9-14d99ce90673.png)\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/openzipkin/openzipkin.github.io/issues/comments/208965765","html_url":"https://github.com/openzipkin/openzipkin.github.io/issues/23#issuecomment-208965765","issue_url":"https://api.github.com/repos/openzipkin/openzipkin.github.io/issues/23","id":208965765,"user":{"login":"adriancole","id":64215,"avatar_url":"https://avatars.githubusercontent.com/u/64215?v=3","gravatar_id":"","url":"https://api.github.com/users/adriancole","html_url":"https://github.com/adriancole","followers_url":"https://api.github.com/users/adriancole/followers","following_url":"https://api.github.com/users/adriancole/following{/other_user}","gists_url":"https://api.github.com/users/adriancole/gists{/gist_id}","starred_url":"https://api.github.com/users/adriancole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adriancole/subscriptions","organizations_url":"https://api.github.com/users/adriancole/orgs","repos_url":"https://api.github.com/users/adriancole/repos","events_url":"https://api.github.com/users/adriancole/events{/privacy}","received_events_url":"https://api.github.com/users/adriancole/received_events","type":"User","site_admin":false},"created_at":"2016-04-12T15:36:25Z","updated_at":"2016-04-12T15:36:25Z","body":"I'm mostly good on this. Don't want to use protocol for json vs thrift (to describe the serialization format). The closest word I can think of is representation, mostly as that's used in hypermedia and also doesn't preclude versions etc. I don't think it would be popular to call json a protocol, if we polled most people."}}