# Efficient Data Delivery Scheme for Large-Scale Microservices in Distributed Cloud Environment
## 1 Introduction  
Internet of Things (IoT) technologies have been used in various fields, including smart homes, industrial automation, healthcare, and agriculture, bringing about convenience and enormous successes in improving the quality of life [1]. In IoT systems, people, processes, and IoT devices (e.g., home thermostats, security doorbells, wearables, and smart cars) connect to the internet and to each other. A forecast by Cisco estimates that the number of Machine-To-Machine (M2M) connections will be 14.7 billion by 2023, representing 2.4-fold growth from 6.1 billion in 2018 [2]. In addition, a survey from Business Insider predicted that there would be 41 billion IoT devices in operation by 2027. This estimate suggests that the number of IoT devices will continue to rise in the coming years [3]. As a result, the volume of data produced by these devices is enormous. The International Data Corporation (IDC) forecasts that IoT devices will produce 79.4 zettabytes (ZB) of data in the year 2025 [4]. This raises a huge challenges involving data transmission for large-scale IoT systems with higher scalability and lower latency. The term \"microservices\", known as microservice architecture, was coined along with the ideas that arose from best practices across software engineering, Service Oriented Architecture (SOA), and enterprise architecture. In this architectural style, large applications are developed from a suite of small autonomous services [5]. Microservices are loosely coupled, can be deployed independently, and communicate with each other via asynchronous messaging protocols or Remote Procedure Invocation patterns [6; 7]. To support highly scalable and ever-changing business models, microservice architectures include several essential technologies, such as virtualization platforms, continuous delivery, M2M communication, port and adapter patterns, and domain-driven design [8]. In addition, microservices share a number of similar goals with IoT, such as lightweight communication, independently deployable software, and independent development techniques and technologies [5]. Therefore, IoT applications might adopt certain design decisions of microservices in order to produce value-added services from different IoT vendors at scale. The pub/sub paradigm (PSP) is an effective communication solution for large-scale real-time applications. People who participate throughout this communication paradigm can take the roles of either subscribers (consumers), who indicate interest in specific events by obtaining relevant alerts from the publishers through subscriptions, or publishers (producers), who announce and publish incidents in publications [9]. Considering that notices are delivered to an event manager of publishing and requests for subscriptions, the broker immediately locates any relevant subscriptions and contacts any interested parties. Using this mechanism, communicating entities are decoupled in terms of time (there is no need to be active at the same time), space (they do not need to know each other), and synchronization (they do not need to be blocked or waiting while sending/receiving). Therefore, anonymity, many-to-many communication, and asynchronous operations are among the important and adaptable features that this paradigm in distributed systems is able to support [10]. As a result, PSP has been used widely as a communication pattern in event-based middleware for IoT or among microservices in IoT systems [7; 11]. With this approach, microservices that construct IoT applications can communicate, collaborate, and exchange data via an event-based middleware provided by a pub/sub system. On the other hand, organizing a distributed pub/sub brokers system to support efficient collaboration and data exchange among microservice-based IoT applications at scale remains challenging. To deal with these issues, this study designed an Edge-Cloud publish/subscribe broker model to provide an event-based communication tool for microservice-based IoT applications to collaborate and exchange data efficiently.