01 / Flagship / Local + AWS verified

NASA Earth Observation Event Intelligence Platform

A governed NASA FIRMS platform built to preserve scientific source truth while testing deterministic replay, distributed processing, recovery, geospatial serving, and bounded managed-cloud execution.

Local platform · 1M verifiedAWS EMR Serverless · 5M verifiedAWS 10M · not executed

Problem / Users / Guarantees

Scale the processing—not the scientific claim.

NASA FIRMS observations become more useful when identity, provenance, quality, geospatial grain, and processing history remain explicit. The platform serves Earth-observation analysts, geospatial data teams, downstream analytical applications, and platform operators with reproducible data products and bounded read-only contracts.

The core design separates an event message from its underlying NASA detection and replay lineage. Five million test messages therefore remain 10,000 source detections—not five million new observations.

The platform does not declare wildfire incidents, infer perimeters, estimate burned area or severity, or predict future risk. FIRMS rows remain active-fire or thermal-anomaly detections at their source-defined grain.

  1. 01 / MessageProcessing eventA replay message is an execution unit—not a new scientific observation.
  2. 02 / DetectionSource identity10,000 NASA FIRMS detections retain their source-defined grain.
  3. 03 / LineageReplay identityThe deterministic replay multiplier remains traceable without changing source truth.
  4. 04 / GoldReplay-neutral outputAnalytical products reconcile to detections rather than replay-message volume.

System / Designed and implemented locally

From governed source to spatial evidence.

NASA FIRMS observations enter a controlled Python ingestion path, retain source identity and lineage, and become deterministic replay events for Kafka and Spark. Governed Silver and replay-neutral Gold Parquet form the rebuild boundary for PostgreSQL/PostGIS; eight read-only FastAPI routes serve an API-only Streamlit dashboard. Airflow coordinates the proven batch workflow and safe-rerun contract.

  1. InputNASA FIRMS · Python ingestion · checksums

    Observations enter a controlled Python ingestion path and retain source identity and lineage.

  2. TransformationDeterministic replay · Kafka · Spark batch and Structured Streaming

    Deterministic replay events exercise both batch and streaming processing without changing the underlying detection count.

  3. IntelligenceSilver/Gold Parquet · lineage · validation · PostGIS

    Governed Silver and replay-neutral Gold Parquet form the rebuild boundary for PostgreSQL/PostGIS.

  4. OutputRead-only FastAPI · bounded cache · Streamlit

    Eight read-only FastAPI routes serve an API-only Streamlit dashboard through bounded contracts.

Python · SQL · Apache Kafka · Apache Spark · Airflow · Parquet · PostgreSQL/PostGIS · FastAPI · Streamlit · Docker

Evidence / Verified and measured

Two environments. Explicitly different claims.

Underlying detections
10,000
NASA FIRMS detections selected for controlled replay
Complete local pipeline
1,000,000
Replay events, not one million original observations
Spark batch
149.502 s
4 CPUs · 4 GiB container · 32 shuffle partitions
Measured throughput
6,688.88/s
Spark batch events per second
PostgreSQL/PostGIS
1M passed
Counts, geometry, identity, lineage, and aggregates reconciled
Portable suite
117 passed
126 collected · 9 expected environment-dependent skips · 0 failed
AWS managed batch
5,000,000
Replay messages processed and independently verified
AWS throughput
8,734.80/s
572.423-second governed application interval
Physical verification
82 matched
Every Silver/Gold data-object size and SHA-256

AWS managed batch / Verified · bounded · torn down

Cloud execution with temporary authority.

A private CloudFormation-managed foundation in us-east-1 used KMS-encrypted S3, a dedicated VPC with two private subnets and six endpoints, least-privilege IAM, EMR Serverless 7.10, CloudWatch observability, and Budget/SNS cost controls. It was a bounded batch-verification deployment—not a continuously hosted service.

  1. Input10,000 detections replayed 500 times · encrypted S3 Bronze

    The controlled replay produced five million messages while preserving 10,000 distinct source detections.

  2. ProcessEMR Serverless 7.10 · Spark 3.5.5 · Python 3.11

    The managed batch ran inside the private CloudFormation-managed foundation in us-east-1.

  3. VerifyIndependent EMR verifier · counts, lineage, science, hashes

    Independent verification reconciled counts, identity, lineage, science, and every Silver/Gold object hash.

  4. CloseExecution permission removed · evidence preserved · foundation torn down

    Temporary workload authority was removed and the foundation was deleted after evidence preservation.

Accepted / rejected / duplicate
5M / 0 / 0
Replay-neutral science
10K / 5,281
Detections / daily cells
Estimated EMR compute
$0.186997
Ancillary and foundation charges excluded

Authorization boundary: temporary workload permission was deleted after verification and permanent StartJobRun returned to implicit denial. The foundation and retained buckets were deleted after evidence preservation.

AWS EMR Serverless · S3 · KMS · IAM · CloudFormation · VPC endpoints · CloudWatch · Budget/SNS

Reliability / Passed

Stable identities make reruns inspectable.

Kafka offset reconciliation, Spark checkpoints, staged database loads, stable run identities, and conflict detection prevent silent duplication or overwrite. A checkpoint restart consumed no new Kafka records; an idempotent PostgreSQL rerun inserted zero rows and recognized all one million existing events.

Kafka and PostgreSQL restart tests preserved committed offsets and serving truth. A deliberate database identity conflict rolled back without partial mutation. Airflow verified ordering, bounded retries, failure propagation, and safe rerun behavior on its integration profile.

Capacity boundary / Passed + failed

The 10M result diverges.

Passed

Generation and read-back

Exactly 10,000,000 replay events were generated from 10,000 underlying detections and independently reconciled. Two deterministic outputs produced the same SHA-256 checksum.

Failed

Spark processing

The 10M Spark attempt did not complete. It reached a verified local Java heap exhaustion boundary after approximately 629 seconds; no Spark output or admitted manifest was produced.

Meaning: 10M deterministic local generation and verification passed. Local 10M Spark did not. AWS 10M was not run because the verified 5M managed gate had already answered the bounded cloud-execution question.

Limitations / Explicit

What this evidence does not claim.

  • Complete local platform validation stops at one million replay events.
  • Local 10M generation is not local 10M Spark or full-platform validation.
  • AWS processed five million replay messages; AWS 10M was not executed.
  • The AWS result is bounded batch verification, not a hosted API/dashboard, availability, concurrency, or production-SLA claim.
  • Local Kafka uses one KRaft broker and does not demonstrate broker failover or high availability.
  • Recorded local timings are sequential measurements, not multi-user load tests.
  • The EMR figure is an estimated compute charge and excludes ancillary/foundation charges while billing ingestion settles.
  • FIRMS detections are not incidents, perimeters, burned area, severity, or predictive risk.
Inspect the repositoryOpen résuméContact Nitheesh