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 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). Prossimo passo previsto: rilevamento delle anomalie per le navi che deviano dalle rotte attese.
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.