Зазвичай служби телефонують до інших служб, коли їм потрібно отримати доступ до своїх даних. Кожен фрагмент даних повинен належати певній службі, яка буде єдиною точкою входу для доступу до цих даних та їх зміни. Деякі сервіси будуть простими і зазвичай тісно відповідають вашій моделі домену (наприклад, послуга поводження з користувачами), тоді як інші будуть на високому рівні та використовуватимуть дані інших служб (наприклад, показ переліку фотографій разом із інформацією про користувачів, які їх завантажили ).
У вашому випадку використання вам слід почати ззовні і подумати про те, які операції ви хочете зробити доступними для вашого користувача через API (якщо це сервіс задніх днів) або які операції повинні бути доступні в графічному інтерфейсі, якщо це веб-додаток. Зауважте, що частина GUI часто є звичайною програмою з власними контролерами: операції можуть бути викликані через REST (як у AngularJS), але ці кінцеві точки призначені лише для використання програми GUI і не є мікросервісами у здоровому розумінні.
Припустимо, ви хочете відображати фотографії разом із інформацією про завантажувачів. Ви можете мати службу користувача, яка повертає інформацію про користувача з урахуванням ідентифікатора користувача та послугу фотографій, яка може перераховувати фотографії (наприклад, пошук за деякими критеріями). Список фотографій міститиме для кожної фотографії ідентифікатор користувача, що завантажує. Таким чином ці два сервіси не поєднуються - фотосервіс знає лише ідентифікатори користувачів, але нічого про самі дані користувачів. Крім цих двох сервісів, ви можете створити третій сервіс за допомогою такої операції, як "перелік фотографій з інформацією про завантажувачів", які б викликали дві інші служби та поєднували дані, які вони повертають. Крім того, цю операцію може виконувати ваша веб-програма замість послуги.