Awesome
Бизнес-требования
У нас есть коты и города.
Часть котов находится в городе, другая часть вне города (в дороге).
Кот не может быть в двух городах одновременно.
В одном городе могут быть одновременно несколько котов.
АПИ
Поселить кота в город.
Выселить кота из города.
Узнать, находится ли данный кот в данном городе.
Узнать, в каком городе находится данный кот.
Узнать, какие коты находятся в данном городе.
TODO: формальное описание АПИ: аргументы, возвращаемые значения, возможные ошибки
Система распределенная, запрос клиента может попасть на любую реплику. Считаем, что впереди стоит довольно глупый балансировщик, который раскидывает запросы случайно, не учитывая клиентские сессии.