<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AJOUHY ABDELAH</title>
    <description>The latest articles on DEV Community by AJOUHY ABDELAH (@abdelah).</description>
    <link>https://dev.to/abdelah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4244014%2Fbd76b4e0-337f-49ae-b9ed-dd8bd20131c6.png</url>
      <title>DEV Community: AJOUHY ABDELAH</title>
      <link>https://dev.to/abdelah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdelah"/>
    <language>en</language>
    <item>
      <title>Poseidon: Monitoring a Simulated Oilfield with Kafka, Spark and the Elastic Stack</title>
      <dc:creator>AJOUHY ABDELAH</dc:creator>
      <pubDate>Sat, 14 Nov 2026 07:09:47 +0000</pubDate>
      <link>https://dev.to/abdelah/poseidon-monitoring-a-simulated-oilfield-with-kafka-spark-and-the-elastic-stack-533g</link>
      <guid>https://dev.to/abdelah/poseidon-monitoring-a-simulated-oilfield-with-kafka-spark-and-the-elastic-stack-533g</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Oil and gas operations generate large volumes of industrial data, collected continuously from sensors, equipment and production systems across wells and facilities. Turning this data into actionable insights requires reliable ingestion, processing and analytics.&lt;/p&gt;

&lt;p&gt;To address this challenge, I built DatAbde, my own data platform, and used it to develop Poseidon, an oil and gas project that addresses these industry challenges through a simulated oilfield. &lt;/p&gt;

&lt;p&gt;Using Apache Kafka and Spark, Poseidon processes industrial telemetry through a Medallion-based ETL pipeline, feeding two analytical workflows: near-real-time monitoring with the Elastic Stack, and historical business reporting with Spark, Delta tables on MinIO and Metabase.&lt;/p&gt;

&lt;p&gt;This article explores how the platform supports the monitoring and analysis of oilfield operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Industrial Data Ingestion and Processing
&lt;/h2&gt;

&lt;p&gt;Poseidon relies on Ignition Gateway to simulate four production sites, each generating industrial telemetry every second.&lt;/p&gt;

&lt;p&gt;Randomized operational scenarios reproduce varying production conditions and well behaviors, providing a realistic simulation environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgq8rck4nta4mjsla45eo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgq8rck4nta4mjsla45eo.png" alt="Ignition Designer interface displaying production history charts and trends" width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 1 - Production History [Ignition Designer]
  &lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa77mo0ohnen1yae7uews.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa77mo0ohnen1yae7uews.png" alt="Ignition Designer dashboard showing remote site monitoring metrics and status" width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 2 - Remote Site Monitoring [Ignition Designer]
  &lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu4cj4rrynhhkkg0z8x37.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu4cj4rrynhhkkg0z8x37.png" alt="Ignition Designer dashboard detailing operational data for Site A monitoring" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 3 - Site A Monitoring [Ignition Designer]
  &lt;p&gt;&lt;/p&gt;

&lt;p&gt;Telemetry is published over MQTT, received by EMQX, and forwarded to Apache Kafka, which acts as the central ingestion layer. Apache Spark then consumes these streams and processes them through a Medallion-based ETL pipeline.&lt;/p&gt;

&lt;p&gt;The resulting datasets feed two separate analytical workflows: near-real-time monitoring and historical business reporting, as shown in Figure 4.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl0euhu72ws8wqey9vm0r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl0euhu72ws8wqey9vm0r.png" alt="Architecture diagram illustrating the Poseidon data flow from MQTT and Kafka through Spark to Elasticsearch and MinIO" width="800" height="183"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 4 - Poseidon Data Architecture
  &lt;p&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Near-Real-Time Operational Monitoring
&lt;/h2&gt;

&lt;p&gt;Once processed by Apache Spark, operational metrics are continuously indexed in Elasticsearch, making production data available for analysis within seconds.&lt;/p&gt;

&lt;p&gt;Kibana provides a unified view of the simulated oilfield, combining production volumes, well pressures, temperatures and flow rates. &lt;/p&gt;

&lt;p&gt;Its dashboards let users monitor the four wells, compare their performance and track operational changes over time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxxlqfj4m55p6r9oarw5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxxlqfj4m55p6r9oarw5i.png" alt="Kibana dashboard displaying real-time metrics and charts for well monitoring" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 5 - Wells Monitoring [Kibana]
  &lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ll94n868jkcoji8bbly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ll94n868jkcoji8bbly.png" alt="Kibana dashboard highlighting overall production monitoring and operational indicators" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 6 - Production Monitoring [Kibana]
  &lt;p&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Historical Production Analysis and Business Reporting
&lt;/h2&gt;

&lt;p&gt;While near-real-time monitoring focuses on current operations, historical analysis provides a broader view of production performance over time.&lt;/p&gt;

&lt;p&gt;To support this, I developed a separate Apache Spark batch workflow that reads processed data from the Gold Kafka topic and generates production and well downtime reports at hourly granularity. &lt;/p&gt;

&lt;p&gt;These reports include production volumes, Gas-Oil Ratio (GOR), Barrels of Oil Equivalent (BOE), Water-Oil Ratio (WOR) and downtime durations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqqbyfipayao2uyhuhh28.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqqbyfipayao2uyhuhh28.png" alt="Metabase dashboard showing historical production reports and aggregated metrics" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 7 - Production Report [Metabase]
  &lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj19n5zf6wsyotbyc4ctr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj19n5zf6wsyotbyc4ctr.png" alt="Metabase dashboard analyzing well status and operational duration metrics over time" width="799" height="389"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;Figure 8 - Well Status and Duration [Metabase]
  &lt;p&gt;&lt;/p&gt;

&lt;p&gt;The resulting datasets are stored as Delta tables on MinIO object storage, complementing near-real-time monitoring with historical analysis and business reporting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Poseidon demonstrates the value of combining Apache Spark’s distributed processing capabilities with Elasticsearch’s search and analytical capabilities, powered by Apache Lucene. While Spark handles large-scale data processing and transformation, Elasticsearch provides fast indexing, filtering and exploration of operational data, making it particularly well suited for near-real-time monitoring.&lt;/p&gt;

&lt;p&gt;Beyond operational monitoring and historical reporting, MinIO provides object storage for generated reports and curated datasets, making them available for future distributed machine learning and deep learning workloads. &lt;/p&gt;

&lt;p&gt;Above all, by centralizing data from all production sites in a single platform, operators gain a unified view of their entire operation instead of monitoring each site in isolation.&lt;/p&gt;

&lt;p&gt;Thank you for reading.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Author : Abdelah AJOUHY&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>elasticsearch</category>
      <category>kafka</category>
      <category>spark</category>
      <category>ignition</category>
    </item>
  </channel>
</rss>
