Genellikle, servisler kendi verilerine erişmeleri gerektiğinde diğer servisleri de arar. Her veri parçası, bu verilere erişmek ve bunları değiştirmek için tek giriş noktası olacak belirli bir hizmete ait olmalıdır. Bazı servisler basit olacaktır ve genellikle etki alanı modelinize (örn. Kullanıcıların kullanımı için bir servis) yakından bakacak, diğerleri ise yüksek seviyede olacak ve diğer servislerden gelen verileri kullanacaktır (örneğin, onları yükleyen kullanıcılar hakkındaki bilgilerle birlikte bir fotoğraf listesini görüntüleme) ).
Kullanım durumunuzda, dışarıdan başlamalı ve bir API üzerinden kullanıcınıza hangi işlemleri yapmak istediğinizi (bir arka uç servisi ise) veya bir web uygulaması ise GUI'de hangi işlemleri yapabileceğinizi düşünmelisiniz. GUI bölümünün genellikle kendi denetleyicileri olan normal bir uygulama olduğunu unutmayın: işlemler REST aracılığıyla çağrılabilir (AngularJS'deki gibi), ancak bu bitiş noktaları yalnızca GUI uygulamasının kullanımı için tasarlanır ve sağduyulu mikro hizmetler değildir.
Fotoğrafları yükleyicilerle ilgili bilgilerle birlikte görüntülemek istediğinizi varsayalım. Kullanıcı kimliği verilen bir kullanıcı hakkında bilgi döndüren bir kullanıcı servisine ve fotoğrafları listeleyebilen bir fotoğraf servisine sahip olabilirsiniz (örneğin, bazı kriterlere göre arama yaparak). Fotoğrafların listesi, her fotoğraf için, yükleyen kullanıcının kimliğini içerir. Bu şekilde, bu iki hizmet birleştirilmez - fotoğraf hizmeti yalnızca kullanıcı kimliklerini bilir, ancak kullanıcı verileri hakkında hiçbir şey bilmez. Bu iki hizmetin üzerine, diğer iki hizmeti çağıracak ve döndürdükleri verileri birleştirecek olan "yükleyicilerle ilgili bilgileri içeren fotoğrafları listeleme" gibi bir işlemle üçüncü bir hizmet oluşturabilirsiniz. Alternatif olarak, bu işlem web uygulamanız tarafından bir servis yerine yapılabilir.