Если Вы используете распределенную систему управления версиями (например git), то одна задача считается решенной.
Выделить библиотеку для построения прототипов распределенных систем. Примеры сущностей: компьютер, сетевой интерфейс, комьютерная сеть. "Сеть" должна обеспечивать адресацию "компьютеров" и передачу данных.
- Реализовать нерекурсивный запрос (см. пример на Википедии).
- Реализорвать рекурсивный запрос.
- Написать небольшой текст о проблеме рекурсивных запросов. Можно продемонстрировать тестами или демо-кодом.
Разработать прототип системы с репликацией. Использовать базовую библиотеку (несколько компьютеров в сети). Показать в тестах штатный режим работы системы (запись и использование данных), поломки (например, вышел из строя основной компьютер).
Ссылки:
Разработать прототип системы с шардированием. Показать в тестах штатный режим работы (запись и использование данных), и поломки.
Ссылки:
Разработать прототип пиринговой системы для обмена файлами в соотвествии с основными принципами работы протокола BitTorrent. Реализовать работу с трекером. Использовать базовую библиотеку.
Ссылки:
Разработать код, объясняющий, что такое распределенная хеш-таблица. Показать добавление, поиск и перераспределение данных.
- Распределённая хеш-таблица
- Distributed Hash Tables, Part I
- Простое базовое объяснение распределенной таблицы Hash (DHT)
- Протокол DHT
Разработать прототип блокчейн-системы. Материалы How to Build a Blockchain in Python и Блокчейн на Python дают хорошее представление о принципах работы блокчейна.
При разворачивании системы на "компьютерах" базовой библиотеки (задача 1) полезно разобрать материал Создаем Blockchain с нуля на Python. Если такое разворачивание покажется трудным или бессмысленным, то можно повторить реализацию с Flask. Это будет очень полезно с точки зрения освоения технологий.