Publication: CloudEvents Router

Posted by Fabrizio Lazzaretti on Thursday, December 19, 2019
Last Modified on Friday, April 12, 2024

This thesis explores the development of a CloudEvents Router for CARU, an AgeTech startup focused on internet-connected devices that promote independent living for seniors.

Authors

L. Basig, F. Lazzaretti

Abstract

CARU is an AgeTech startup that builds an internet-connected device to help the elderly to live independently for longer. CARU’s software architecture is heavily event-driven. The events are structured according to the CloudEvents specification of the Cloud Native Computing Foundation. The vision of CARU is a unified event plane where events can flow between all connected systems. To route the events between the systems on the device, in the cloud, and potentially even from third parties, this thesis introduces the CloudEvents Router. The router uses the fields defined by the CloudEvents specification to decide where to forward the events to.

As a starting point, we conducted extensive market research and found one solution with great potential: Apache Camel. Unfortunately, Camel did not meet all the resource and portability requirements. To create a solution that fulfills all these requirements, we designed, prototyped, and implemented our solution.

The primary result is an open-source CloudEvents Router proof of concept implementation in the Rust programming language. To achieve the desired portability, we based the architecture on an event-driven Microkernel, which supports the platform-specific implementation of individual components. The second deliverable is a report about our experience of using the Rust programming language for the first time. After a frustrating beginning, we started to enjoy using it because of the safety guarantees of its ownership model, the exceptionally helpful compiler, and the fantastic tooling.