噢對了,其實我個人的感受是 GraphQL 不只是 microservice 架構好用,在 modular-mono 也有一定優勢。以 mosir 的文章為例,post 跟 profile 完全是兩個不同的 module、提供不同服務。resolver(實際上是 gqlgen force resolver)依照需求把需要的 profile 放進 post,而不用在 post 跟 profile 本身塞不必要的相依性,也不需要讓 client 分兩次 request 才拿到需要的資料。
這種在大型專案的相依性解耦跟權責分離才是我們選擇 GraphQL 所帶來的好處,在專案越來越龐大的狀況下還是可以維持一定的程式碼整潔跟開發速度。