blob: 865cd515fdacfb0ec87277952afaace314b9e1af [file] [view]
---
title: "Design Doc - Attention Set - Solution 1 - Implementation"
permalink: design-docs/attention-set-solution-1-implementation.html
hide_sidebar: true
hide_navtoggle: true
toc: false
folder: design-docs/attention-set
---
*Please read these other parts of the solution before this doc:*
* [Use Cases](/design-docs/attention-set-use-cases.html)
* [Workflow](/design-docs/attention-set-solution-1-workflow.html)
* [User Interface](/design-docs/attention-set-solution-1-user-interface.html)
# Solution 1 - Implementation
We believe that the implementation of the solution is either straightforward or warrants a separate
design doc, so we are not proposing any technical implementation details here, but instead collect a
list of technical questions that will have to be answered:
* Where is the attention set stored?
* Scalability, replication and multi-site consistency of the attention set storage.
* Will updates be atomic with other metadata changes (reviewer and cc changes)?
* What is the data structure for the attention set and its entries?
* How does the REST API look like for attention set related operations?
* Will there be dedicated plugin extension points for the attention set?
* How is the attention set indexed and what are the supported search operators?
* How are hosts migrated from assignee/reviewed based workflow to being attention set based?
* Who should be allowed to change the attention set? Do we need another permission?
* How can we support tools like
[Go's maintner tool](https://godoc.org/golang.org/x/build/maintner) that rely on email
notifications about uploaded patchsets?
## <a id="alternatives-considered">Alternatives Considered
We could have tried to write the attention set as a plugin, but we believe that tracking whose turn
it is is so fundamental to the code review process that we need to build the fundamental concepts
into core.
## <a id="implementation">Implementation Plan and Time Estimation
Will be implemented by Google and be ready for the 3.2 release.