- Microservices with Clojure
- Anuj Kumar
- 314字
- 2021-06-30 19:24:37
Limitations
Although a monolithic architecture for the Helping Hands application fulfills the purpose, it has some inherent limitations. There is a high coupling of the components with the consumers and providers table. Any change in these two tables will affect almost all the components of the system and will require redeployment of the entire application.
The Helping Hands application also depends on two external services. Suppose one of these services shuts down or there is a requirement to move to a better service; the corresponding geolocation or alerting component will be changed and will result in the redeployment of all the instances of the application, even though there was no change in the core functionality and services of the application. This adds to the deployment overhead for simple changes as well.
Since the entire application is deployed as a single artifact, scaling an application scales all the components of the application equally. For example, to scale with incoming order and service lookup requests, the Registration Component is unnecessarily scaled with the order and service components. This also increases the load on the database that is handling all the incoming requests from the components. Often, requests from one component can affect the database performance for other components as well and reduce the performance of the entire application.
Another limitation of the current monolithic architecture of the Helping Hands application is its dependency on a single database technology. In practice, a fuzzy search for services using tags and lookup using geolocations can be supported better by databases such as Elasticsearch (https://www.elastic.co/products/elasticsearch) as compared to relational databases such as MySQL (https://www.mysql.com/). Relational databases are better suited for transactional operations such as creating service orders and maintaining user accounts. With the current architecture, there is only one database technology, and that affects the efficiency of the application and makes it less flexible.
- 物聯網標準化指南
- 黑客攻防實戰技術完全手冊:掃描、嗅探、入侵與防御
- GPS/GNSS原理與應用(第3版)
- INSTANT PhpStorm Starter
- Django 2 by Example
- Getting Started with WebRTC
- 面向物聯網的嵌入式系統開發:基于CC2530和STM32微處理器
- Practical Web Design
- Getting Started with Grunt:The JavaScript Task Runner
- Yii Application Development Cookbook(Second Edition)
- 中國互聯網發展報告2018
- 光纖通信系統與網絡(修訂版)
- Working with Legacy Systems
- 沖擊:5G如何改變世界
- 移動物聯網:商業模式+案例分析+應用實戰