Если сказать грубо, то API в общем понимание - это и есть набор микросервисов (далее МС).
Т.е., скажем у нас есть API для получения списка пользователей, тогда, в терминах МС, у нас есть МС "Список пользователей", цель которого следует из названия. Общая концепция - иметь
минимальное количество
качественных действий. Отсюда и его преимущества и недостатки (
https://ru.wikipedia.org/wiki/Микросервисы ) .
В целом по технологиям и стекам - вполне можно и на PHP, используя ту же Symfony/Silex/Slim/Equip и т.д. Тут, на чем удобно, то и используйте. Я вообще не слышал, чтобы разрабатывали конкретные решения под нужды МС.
Если смотреть на Java, я видел не мало примеров на spring-boot, на .NET - .net core думаю будет идеален (asp.net core).
В качестве протоколов обычно выбирается JSON, но никто не будет вас ругать, если вы будете использовать protobuf или вообще, что-то свое. У каждого свои нюансы, в общем.
Говоря про общие моменты, обычно, рядом с МС всегда "употребляют" тот же Docker и автоматические средства развертывания. Т.е. по факту - МС,
зачастую, цельный блок инфраструктуры, сразу же готовый для использования после автоматического развертывания.
UPD. Еще, крайне важный момент для МС - это мониторинг работоспособности. Нельзя им пренебрегать. На хабрахабре была не так давно целая статья про мониторинг.
UPD2. Шлюзом-аггрегатором может быть что угодно, более того, его может и не быть. Самый простой вариант шлюза - это NGINX, где можно сделать проксирование запросов, в зависимости от запрашиваемого URL.