Strong typing for event-driven microservice architecture

N. Gerasimov
{"title":"Strong typing for event-driven microservice architecture","authors":"N. Gerasimov","doi":"10.32603/2071-2340-2019-1-43-53","DOIUrl":null,"url":null,"abstract":"Microservice architecture is a popular approach for building various systems. It consists of various dedicated small-sized components from a solid application. Components work together and provide the required business-logic but each one can be implemented with the most suitable technique. Moreover, overloaded parts can be scaled easily. However, data transfer layer does not guarantee compatibility of services during their development. After changing input or output data type of any microservice of the system there are too little ways to keep up compatibility of all other services. The problem is especially urgent for asynchronous communication because existing systems and standards work mostly with synchronous RPC or REST interoperation or cover high-level description of business-logic. One approach to guarantee compatibility of all services in the system is a preliminary check of data types before the services start to work. The previous paper considers realization of the mentioned approach with the dedicated service that checks types, connects services using description of the interfaces. The current paper covers further development of the approach: a system built with preliminary check of data types supports only asynchronous communication and all checks are provided by a message broker. We have implemented and compared simplified approach with alternative ways and have come to the conclusion that described way solves the problem of type inconsistency in a microservice event-driven architecture in a more convenient way than alternatives.","PeriodicalId":319537,"journal":{"name":"Computer Tools in Education","volume":"9 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-03-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computer Tools in Education","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.32603/2071-2340-2019-1-43-53","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Microservice architecture is a popular approach for building various systems. It consists of various dedicated small-sized components from a solid application. Components work together and provide the required business-logic but each one can be implemented with the most suitable technique. Moreover, overloaded parts can be scaled easily. However, data transfer layer does not guarantee compatibility of services during their development. After changing input or output data type of any microservice of the system there are too little ways to keep up compatibility of all other services. The problem is especially urgent for asynchronous communication because existing systems and standards work mostly with synchronous RPC or REST interoperation or cover high-level description of business-logic. One approach to guarantee compatibility of all services in the system is a preliminary check of data types before the services start to work. The previous paper considers realization of the mentioned approach with the dedicated service that checks types, connects services using description of the interfaces. The current paper covers further development of the approach: a system built with preliminary check of data types supports only asynchronous communication and all checks are provided by a message broker. We have implemented and compared simplified approach with alternative ways and have come to the conclusion that described way solves the problem of type inconsistency in a microservice event-driven architecture in a more convenient way than alternatives.
事件驱动微服务架构的强类型化
微服务架构是构建各种系统的流行方法。它由来自可靠应用程序的各种专用小型组件组成。组件一起工作并提供所需的业务逻辑,但每个组件都可以使用最合适的技术实现。此外,过载的部件可以很容易地伸缩。但是,数据传输层并不能保证业务在开发过程中的兼容性。在改变系统的任何微服务的输入或输出数据类型之后,几乎没有办法保持所有其他服务的兼容性。这个问题对于异步通信来说尤其紧迫,因为现有的系统和标准主要使用同步RPC或REST互操作,或者覆盖业务逻辑的高级描述。保证系统中所有服务的兼容性的一种方法是在服务开始工作之前对数据类型进行初步检查。前一篇文章考虑了使用专用服务来实现上述方法,该服务检查类型,使用接口描述连接服务。当前的论文涵盖了该方法的进一步发展:使用数据类型初步检查构建的系统仅支持异步通信,并且所有检查都由消息代理提供。我们已经实现了简化的方法,并将其与其他方法进行了比较,得出的结论是,所描述的方法比其他方法更方便地解决了微服务事件驱动架构中的类型不一致问题。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信