# Architecture Course
## Voting in a small informal group
**Use case:** A local community group (e.g. neighborhood association, local cooperative, etc.) needs to pass a couple resolutions and have a clear tally of votes by the end of the week. All members of the app are all able to vote so you'll want to restrict membership to community members.
Scale: less than 500 people
Time: Deadline vote by end of week
Secrecy: Vote content does not need to be hidden
- How will you keep external people from voting
- How will you count all the votes to get final tallies in an eventually consistent system?
**Note:** The focus here is on voting, not identity. We'll get to identity management later.
## #2: Voting in a National Election?
A nation wants its election to achieve new levels of transparency and accountability for people to have confidence in the integrity of the election process.
Functional requirements:
- Only approved voters can vote
- People can check that their vote was cast/counted
- External parties can audit the election
- You cannot see who voted for what
Scale: many millions of people
Time: Deadline votes cast on election day
Secrecy: Votes are anonymous (you cannot see who voted for what).
- How can you make sure only valid voters can vote?
- How do ensure each person can only vote once?
- How do you tally all the results on an eventually consistent system?