BROWSER
API-SVC
TODO-SVC
client.py
cache.py
YOU ARE HERE
BROWSER
API-SVC
TODO-SVC
GET /list/1234
X-User: foo
GET /list/1234/collaborators/foo
X-User: foo, X-Role: friend
GET /list/1234
200 OK {"role": "friend"}
200 OK {"list_id": 1234,
"name": "Groceries", "collaborators": [...], "entries": [...]}
QUERY
QUERY
BROWSER
API-SVC
TODO-SVC
GET ...
GET ...
200 OK ...
ETag: deadbeef
STORE
deadbeef
...
QUERY
STORE deadbeef
200 OK ...
BROWSER
API-SVC
TODO-SVC
GET ...
If-None-Match: deadbeef
GET ...
304 Not Modified
FETCH deadbeef
FETCH deadbeef
200 OK ...
FETCH
deadbeef
...