官术网_书友最值得收藏!

Loosely couple

No microservice exists on its own, as any system needs to interact with others, including other microservices, but we need to do it as loosely coupled as we can. Let's say that we are designing a microservice that returns the available offers for a giving customer, we may need a relation to our customer, for example, a customer ID, and that should be the maximum coupling that we may accept.

Imagine a scenario that for a component that uses our offers, the microservice needs to display the customer name when it displays those offers. We could modify our implementation to use the customer microservice to add that information to our response, but in doing so, we are coupling with the customer microservice. In that case, if the customer name field changes, for example, to become not just a name but is separated into surname and forename, we need to change the output of our microservice. That type of coupling needs to be avoided; our microservices should just return what information that is really under their domain.

Remember that our domain experts could help us in understanding if a business capability owns a function; probably the experts in customer offers will know that the customer name is something that is a handle in another business capability.

We need to take care of how we are coupling, not only between microservices, but with everything in our architecture, including external systems. That is one of the reasons why every microservice should own its own data, this including even a database where the data is persisted.

主站蜘蛛池模板: 连南| 贵定县| 阜南县| 富顺县| 广安市| 江安县| 孝义市| 筠连县| 武乡县| 安顺市| 永年县| 孟津县| 太原市| 仪陇县| 南通市| 九龙城区| 灵石县| 光泽县| 营山县| 怀集县| 宁武县| 双城市| 南澳县| 八宿县| 安塞县| 临猗县| 太谷县| 德惠市| 诸城市| 太保市| 莎车县| 安陆市| 江永县| 湘潭市| 铜鼓县| 永春县| 高密市| 赤城县| 银川市| 祥云县| 道孚县|