From 345e95bd949a5ca689c53793094a967d4e87b3ce Mon Sep 17 00:00:00 2001 From: Artem Zakirullin Date: Sun, 29 Sep 2024 20:03:30 +0300 Subject: [PATCH] fix hex chapter --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cf18803..4f86dfe 100644 --- a/README.md +++ b/README.md @@ -264,7 +264,7 @@ This architecture was something that made intuitive sense at first, but every ti > Do not add layers of abstractions for the sake of an architecture. Add them whenever you need an extension point that is justified for practical reasons. **[Layers of abstraction aren't free of charge](https://blog.jooq.org/why-you-should-not-implement-layered-architecture), they are to be held in our working memory**. -If you think that such layering will allow you to quickly replace a database or other dependencies, you're mistaken. Changing the storage causes lots of problems, and believe us, having some abstractions for the data access layer is the least of your worries. At best, abstractions can save somewhat 10% of your migration time (if any), the real pain is in data model incompatibilities, communication protocols and [implicit interfaces](https://www.hyrumslaw.com/). **So, why pay the price of high cognitive load for such an architecture, if it doesn't pay off in the future?** Plus, in most cases, that future of replacing some core component never happens. +If you think that such layering will allow you to quickly replace a database or other dependencies, you're mistaken. Changing the storage causes lots of problems, and believe us, having some abstractions for the data access layer is the least of your worries. At best, abstractions can save somewhat 10% of your migration time (if any), the real pain is in data model incompatibilities, communication protocols, distributed systems challenges, and [implicit interfaces](https://www.hyrumslaw.com/). **So, why pay the price of high cognitive load for such an architecture, if it doesn't pay off in the future?** Plus, in most cases, that future of replacing some core component never happens. Even though these layered architectures have accelerated an important shift from traditional database-centric applications to a somewhat infrastructure-independent approach, where the core business logic is independent of anything external, the idea is by no means novel.