Комментарии 3
Все это, конечно, интересно, но непонятно, зачем grpc и микросервисы для системы, которой будет пользоваться несколько тысяч человек.
И других вопросов много.
Ничего не написано про базу данных. Какую базу вы использовали? База данных общая или отдельная для каждого микросервиса? Транзакции/целостность данных при взаимодействии микросервисов?
Сколько было разработчиков, какого уровня и с какими скиллами?
А использование PHP для реализации вызова удаленных процедур это вообще nonsense. Неужели нельзя было ту же самую задачу решить с помощью node.js?
да, возможно забыл упомянуть. Обучение студентов этого университета - только начало. В планах у ребят масштабировать эту систему и с прицелом на будущее - возможно как облачный сервис по подписке.
Про бд - это кластер postgres. У каждого сервиса своя бд.
Про согласованноость данных если, то в подавляющем большинстве сервисы слабо связаны по данным, тут больше про доступность. Но есть связка сервисов (пользователи, группы, зачетка) - для некоторых флоу использовался механизм с компенсирующими транзакциями, для других же - на основе подтверждений.
По разработчикам могу сказать, что работы хватало всем. В разные этапы на проекте работало от 6 ти до 11 разработчиков (бэк+фронт, помимо аналитиков, тестировщиков и прочих) и по уровню разработчиков - участвовали это middle и выше
По поводу rpc на php - мы реализовывали такое не только на protobuf в этом продукте, но и раннее вполне успешно и с использованием и rabbit и просто по http. Так что тут я не соглашусь. Кажется тут суть в удаленном вызове процедур, а не стеке
А использование PHP для реализации вызова удаленных процедур это вообще nonsense.
А кто это вам сказал?
«Успейте за 5 месяцев создать систему онлайн обучения», — говорили они, «Успеем к 1 сентября», — сказали мы