Abstract
The AgeTech domain poses both opportunities and challenges for the architects of Internet of Things (IoT) solutions. Key requirements concern data privacy and cost-efficiency, as well as guaranteed, interoperable delivery of event messages from resource-constrained edge devices to the cloud and consumer applications; public cloud deployments and asynchronous, queue-based messaging are common building blocks of such solutions. This experience report features the conceptual, pattern-oriented design and open source implementation of a custom-built embeddable event router that natively supports the CloudEvents specification from the Cloud Native Computing Foundation. Our CloudEvents Router introduces standardized event routing targeting the software landscape of the AgeTech startup CARU; this landscape reaches from an embedded microcontroller to cloud-scale services running on Amazon Web Services. The report further analyses the message delivery guarantees given in messaging protocol specifications and their implementations (for instance, MQTT libraries) and presents an alternative delivery management approach, implemented and validated in the open sourced Rust microkernel of the CloudEvents router. The report concludes with lessons learned about messaging edge cases and protocol particularities, in MQTT in particular.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
The ten analyzed messaging products are: CloudEvent Router and Gateway, Knative Eventing v0.9, Pacifica Dispatcher v0.2.3, Serverless Event Gateway v0.9.1, Amazon Simple Notification Service, Apache Camel v2.24.2, Crossbar.io v19.10.1, D-Bus v1.12, Node-RED v1.0.1, RabbitMQ v3.8 [2].
- 3.
- 4.
- 5.
References
Banks, A., Briggs, E., Borgendale, K., Gupta, R.: MQTT version 5.0 (2019). https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html
Basig, L., Lazzaretti, F.: CloudEvents Router. HSR (2020). https://eprints.ost.ch/id/eprint/832/
Basig, L., Lazzaretti, F.: Reliable messaging using the CloudEvents Router (2021). https://eprints.ost.ch/id/eprint/904/
Bernstein, P.A., Newcomer, E.: Queued transaction processing. In: Principles of Transaction Processing, pp. 99–119. Elsevier (2009)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture. Wiley, Hoboken (1996)
CloudEvents specification v1.0. GitHub (2019). https://github.com/cloudevents/spec/tree/v1.0
Davis, D., Karmarkar, A., Pilz, G., Winkler, S., Yalçinalp, Ü.: Web services reliable messaging (WS-ReliableMessaging) (2009)
Exactly once delivery and transactional messaging in Kafka (2017). https://docs.google.com/document/d/11Jqy_GjUGtdXJK94XGsEIK7CP1SnQGdp2eF0wSw9ra8
Fehling, C., Leymann, F., Retter, R., Schupeck, W., Arbitter, P.: Cloud Computing Patterns. Springer, Vienna (2014). https://doi.org/10.1007/978-3-7091-1568-8
Gruener, S., Koziolek, H., Rückert, J.: Towards resilient IoT messaging: an experience report analyzing MQTT brokers. In: IEEE International Conference on Software Architecture (ICSA) (2021)
Hohpe, G., Woolf, B.: Enterprise Integration Patterns. Addison Wesley, Boston (2004)
Hwang, S.Y., Wang, H., Tang, J., Srivastava, J.: A probabilistic approach to modeling and estimating the QoS of web-services-based workflows. Inf. Sci. 177(23), 5484–5503 (2007). https://doi.org/10.1016/j.ins.2007.07.011
ISO/IEC 13236:1998(E): Information technology - quality of service: Framework
ISO/IEC 25010:2011, systems and software engineering – systems and software quality requirements and evaluation (SQuaRE) – system and software quality models (2011). https://www.iso.org/standard/35733.html
Iwasa, K., Durand, J., Rutt, T., Peel, M., Kunisetty, S., Bunting, D.: Web Services Reliable Messaging TC WS-Reliability 1.1 (2004)
Lampson, B.W., Lynch, N.A., Søgaard-Andersen, J.F.: Correctness of at-most-once message delivery protocols. In: Proceedings of FORTE 1993, Boston, MA, USA (1993)
Ming, Z., Yan, M.: A modeling and computational method for QoS in IOT. In: 2012 IEEE International Conference on Computer Science and Automation Engineering. IEEE (2012). https://doi.org/10.1109/icsess.2012.6269459
Narkhede, N.: Exactly-once semantics are possible: Here’s how Kafka does it (2017). https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/
Petrova-Antonova, D., Ilieva, S.: Towards a unifying view of QoS-enhanced web service description and discovery approaches. EPTCS (2009). https://doi.org/10.4204/EPTCS.2.8
van Steen, M., Tanenbaum, A.: Distributed Systems (2017)
Tai, S., Mikalsen, T., Rouvellou, I., Sutton, S.: Conditional messaging: extending reliable messaging with application conditions. In: Proceedings 22nd International Conference on Distributed Computing Systems. EEE Computer Society (2002). https://doi.org/10.1109/icdcs.2002.1022249
Treat, T.: You cannot have exactly-once delivery (2015). https://bravenewgeek.com/you-cannot-have-exactly-once-delivery/
Distributed transaction processing: The XA specification (1991). http://www.opengroup.org/onlinepubs/009680699/toc.pdf
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Basig, L., Lazzaretti, F., Aebersold, R., Zimmermann, O. (2021). Reliable Event Routing in the Cloud and on the Edge. In: Biffl, S., Navarro, E., Löwe, W., Sirjani, M., Mirandola, R., Weyns, D. (eds) Software Architecture. ECSA 2021. Lecture Notes in Computer Science(), vol 12857. Springer, Cham. https://doi.org/10.1007/978-3-030-86044-8_17
Download citation
DOI: https://doi.org/10.1007/978-3-030-86044-8_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-86043-1
Online ISBN: 978-3-030-86044-8
eBook Packages: Computer ScienceComputer Science (R0)