Real-Time Maritime Analytics Pipeline (AWS)
CompletatoPipeline in tempo reale completamente serverless che ingesta dati di posizione di navi AIS in diretta via WebSocket, li elabora attraverso un'architettura Lambda event-driven, archivia gli eventi grezzi in S3 e visualizza l'attività delle navi in tempo reale tramite OpenSearch Dashboards.
Tecnologie
Problema
Le posizioni delle navi marittime devono essere monitorate in tempo reale, con rilevamento delle anomalie e una traccia di audit permanente per l'analisi storica — con un overhead operativo minimo.
Approccio
WebSocket AIS → Kinesis Data Streams → Lambda 1 (archivio S3 + SQS) → Lambda 2 (arricchimento geo) → Kinesis Firehose → OpenSearch → Dashboard. L'approccio iniziale con Apache Flink è stato abbandonato a causa di incompatibilità JAR con AWS OpenSearch Service.
Risultato
Dashboard di tracciamento navi in tempo reale con visualizzazione geografica e un archivio S3 storico interrogabile. Supporta più aree geografiche (Golfo Persico, Mar Baltico, Mediterraneo).
Apprendimenti
Il sink OpenSearch di Apache Flink è incompatibile con AWS OpenSearch Service (conflitti JAR Elasticsearch 7) — l'approccio Lambda serverless è più semplice e mantenibile; OpenSearch geo_point richiede un oggetto combinato {"lat": x, "lon": y}; SQS non può connettersi direttamente a Firehose.
Rilevanza
Dimostra architettura di streaming in tempo reale, pattern AWS event-driven, presa di decisioni architetturali sotto vincoli (pivot Flink) e design serverless pronto per la produzione.