We have recently adopted the OGC API-Processes specification as we modernize our legacy processing platform at UP42. The legacy platform was plagued by poor compatibility among linked processes, high rates of failure, and unnecessary complexity when handling multi-data inputs. The OGC API-Processes specification offers a standard interface that makes complex computational processing services accessible via a RESTful API. Behind the scenes we built a well choreographed set of micro-services providing substance to the standard endpoints: a process registry service (ProcessList, ProcessDescrition), a job registry service (Status, JobList, Result), a task execution service (Execute) and more. To avoid the failure rate experienced in our legacy platform, we enabled a very restrictive validation of every job ahead of execution, leveraging our STAC-in/STAC-out paradigm (widely relying on extensions like proj, eo etc). Our job-registry-service also leverages STAC to ensure full traceability of jobs and items. Now we would like to look back and share our journey with the community, showing how embracing community specifications like STAC and OGC-Processes API enabled us to transition into a more reliable and scalable processing engine. |