Vertical separation

Our services maintain strict vertical boundaries. This includes keeping state separate at the data layer. This is an important concept. Notice that while the same MongoDB container is being used the auditservice and the eventservice use completely separate collections. No two services should modify the same collection/table. If data from one area is needed by another service, lateral communication happens between services. For instance, the reporting tool (a symbolic service) does not connect to MongoDB to extract data. Rather it asks the eventservice to perform this task. As a system grows in functionality, it's important that this vertical separation always be maintained. If the discipline of full stack vertical separation is not adhered to, the usual result is a distributed monolith. This typically leads to a terrible combination of the negative tradeoffs of both large monolithic applications and distributed systems.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset