Cloud Engineering
PDFA Cloud
Taking the PDFA desktop application to the cloud as a full SaaS platform. Added security, vertical and horizontal scaling, reporting, and a batching system capable of handling thousands of calculations at once.

Overview
This project takes the PDFA desktop application (see PDFA Desktop — C# Rewrite) and turns it into a cloud-based SaaS platform. The goal is to go from a single-user desktop tool to a shared, scalable service that engineering teams can access from anywhere and use to run large numbers of calculations at once.
From Desktop to Cloud
The desktop version of PDFA is a solid tool for individual engineers running one analysis at a time. But real pipeline projects are rarely that simple. A large project might involve dozens of pipe configurations, multiple pressure scenarios, different gas compositions, and varying material grades — all of which need to be evaluated.
Running those scenarios one at a time on a laptop is slow and error-prone. Moving to the cloud changes that:
- Users submit hundreds or thousands of calculations as a batch
- Jobs run in parallel and results come back in a fraction of the time
- Multiple engineers can use the platform at the same time
- Results and reports are available online, shareable, and stored centrally
What We Built
Batching and Job Queue
The centerpiece of the platform is a job queue that handles large batches of PDFA calculations. Users upload a batch file or call the API with a list of scenarios, and the system queues each calculation as an individual job. Worker processes pull from the queue and run the calculations in parallel.
The queue is designed to handle thousands of jobs without falling over. It manages priorities, retries failed jobs, and tracks progress in real time. Engineers can submit a batch and check back when it is done — no babysitting required.
EOS Selection per Batch
One of the more useful features is being able to specify a different Equation of State (EOS) for each batch. An EOS is the mathematical model used to calculate gas thermodynamic properties — things like density, compressibility, and sound speed — at different temperatures and pressures.
Different EOS models make different trade-offs. Engineers often want to see how their results change depending on which model is used. With per-batch EOS selection, they can submit the same scenarios with different EOS settings in a single run and compare the outputs directly.
Security
Moving to the cloud means thinking carefully about who can see what. The platform includes:
- Authentication and role-based access controls
- Encrypted data at rest and in transit
- Audit logging for all jobs, inputs, and results
- Tenant isolation so each organization’s data stays separate
Scaling
The platform handles varying load without manual intervention:
- Vertical scaling — individual workers can be sized up for computationally heavy jobs
- Horizontal scaling — additional workers are added automatically when the job queue grows
This means small jobs stay cheap and fast, while large batch runs still complete in a reasonable time. The infrastructure adjusts to the work, not the other way around.
Reporting
Every batch run produces a structured report covering the full set of inputs, outputs, and metadata for each job. Reports are available for download in standard formats and include everything needed to review results, share findings, or include the analysis in project documentation.
Architecture
The platform is built around a few core components:
- API layer — accepts job submissions, batch files, and status queries
- Job queue — holds pending calculations and coordinates worker assignment
- Worker pool — runs the actual PDFA calculations, scales based on queue depth
- Results store — persists outputs and makes them available for download and reporting
- Web interface — lets users submit jobs, monitor progress, and access results without using the API directly
Current Status
Active development. Batching, EOS selection, and the core calculation engine are functional. Scaling automation and the full reporting module are currently in progress.
- Batch processing at scale. Built a queuing system that accepts thousands of fracture analysis jobs at once, processes them in parallel, and delivers results without any manual intervention.
- EOS selection per batch. Each batch can specify its own Equation of State (EOS), letting engineers compare results across different thermodynamic models in a single run.
- Elastic scaling. The platform scales up or out based on load — small jobs run fast on minimal resources, and large batches automatically bring in more capacity.