Архитектура требуемого приложения: <br><br><ol><li>Web API компонент, принимает 2 типа запросов: на чтение и запись<br><br><ol><li>Чтение: Читает из PostgreSQL базы информацию, переданную в запросе,<br><br>например поиск пользователя по id<br></li><li>Запись: Запись в PostgreSQL новых сущностей в соответствии с<br><br>вариантом, и агрегирует некоторый набор записей и каждую минуту<br><br>выгружает в новый файл в файловой системе<br></li></ol></li><li>PostgreSQL база данных, где создана таблица сущностей предметной области<br></li><li>Локальная файловая система, сюда веб приложение будет 1 раз в мин<br><br>выгружать сущности которые ей пришли на запрос записи<br></li><li>Потоковое приложение Spark, реагирует на появление новых файлов в<br><br>файловой системе и записывает их в Kafka topic<br></li><li>Kafka Broker, хранит сообщения поступившие из spark streaming<br></li><li>Kafka consumer group, читает данные из Kafka topic и записывает в MongoDB<br></li></ol>Требования к проекту:<br><br><ol><li>Проект должен поддерживать механизм сборки и локального развертывания всех компонентов или только части (например развертывание только PostgresSQL базу данных)<br></li><li>Скрипты создания таблиц должны храниться как исходный код<br></li><li>В этап сборки должна быть интегрировано “нагрузочное тестирование” всех компонент, если тестирование проваливается, то сборка должна завершиться с ошибкой указывающей какой именно этап тестирования не прошел<br></li></ol><br>