The actor model provides a powerful paradigm for building concurrent distributed systems. However, its core principles of stateful, long-lived entities are in contrast with the stateless and ephemeral nature of serverless environments, which have seen significant growth and adoption in recent years. This creates an interesting research area focused on bridging this gap: how can the strengths of the actor model be integrated into serverless platforms? This thesis presents the design and prototypical implementation of Nabi, a serverless actor framework built on AWS Lambda, Amazon DynamoDB, and Apache Kafka. Nabi advances the state-of-the-art by replacing polling mechanisms with an event-driven notification system powered by Kafka, enabling low-latency and reactive actor activation. Furthermore, its architecture incorporates a gateway mechanism to facilitate synchronous request-reply communication patterns, enhancing its integration capabilities with other systems. The framework's design ensures exactly-once processing semantics for actor state changes and message dispatches through the use of atomic database transactions. This work details Nabi's architecture, its core programming model, the design of its key components, and analyzes its solutions to the challenges of state persistence, fault tolerance, and communication in a serverless context.
Il modello ad attori fornisce un potente paradigma per la costruzione di sistemi distribuiti concorrenti. Tuttavia, i suoi principi fondamentali basati su entità stateful e di lunga durata sono in contrasto con la natura stateless ed effimera degli ambienti serverless, che hanno visto una crescita e un'adozione significative negli ultimi anni. Questi fattori delineano un'interessante area di ricerca focalizzata a colmare questo divario: come si possono integrare i punti di forza del modello ad attori nelle piattaforme serverless? Questa tesi presenta la progettazione e un'implementazione prototipale di Nabi, un framework ad attori serverless costruito su AWS Lambda, Amazon DynamoDB e Apache Kafka. Nabi contribuisce ad avanzare lo stato dell'arte, sostituendo meccanismi di polling con un sistema di notifiche basato su eventi supportato da Kafka, consentendo l'attivazione di attori a bassa latenza e reattivamente. Inoltre, la sua architettura incorpora un meccanismo di gateway per facilitare modelli di comunicazione sincrona request-reply, migliorando le sue capacità di integrazione con altri sistemi. Il design del framework assicura una semantica di elaborazione exactly-once per i cambiamenti di stato degli attori e per l'invio di messaggi attraverso l'uso di transazioni atomiche sul database. Questa tesi descrive in dettaglio l’architettura di Nabi, il suo modello di programmazione, la progettazione dei suoi componenti chiave e analizza le sue soluzioni a sfide come la persistenza dello stato degli attori, la fault tolerance e la comunicazione in un contesto serverless.
Nabi: an event-driven serverless actor framework
DELL'AGOSTO, GIACOMO
2024/2025
Abstract
The actor model provides a powerful paradigm for building concurrent distributed systems. However, its core principles of stateful, long-lived entities are in contrast with the stateless and ephemeral nature of serverless environments, which have seen significant growth and adoption in recent years. This creates an interesting research area focused on bridging this gap: how can the strengths of the actor model be integrated into serverless platforms? This thesis presents the design and prototypical implementation of Nabi, a serverless actor framework built on AWS Lambda, Amazon DynamoDB, and Apache Kafka. Nabi advances the state-of-the-art by replacing polling mechanisms with an event-driven notification system powered by Kafka, enabling low-latency and reactive actor activation. Furthermore, its architecture incorporates a gateway mechanism to facilitate synchronous request-reply communication patterns, enhancing its integration capabilities with other systems. The framework's design ensures exactly-once processing semantics for actor state changes and message dispatches through the use of atomic database transactions. This work details Nabi's architecture, its core programming model, the design of its key components, and analyzes its solutions to the challenges of state persistence, fault tolerance, and communication in a serverless context.| File | Dimensione | Formato | |
|---|---|---|---|
|
2025_7_Dell_Agosto.pdf
accessibile in internet solo dagli utenti autorizzati
Dimensione
526.74 kB
Formato
Adobe PDF
|
526.74 kB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/241020