-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add "OpenEO-Identifier" header to synchronous processing response #533
base: draft
Are you sure you want to change the base?
Conversation
2cca38b
to
23e9573
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure about this. Synchronous processing was meant to be somewhat stateless, but providing an identifier here would somewhat imply state. The other thing is that in the API the identifier would have no further purpose right now, so I'm somewhat hesistant to add it to the spec quite yet.
You can still implement it if you want, but I'm not convinced yet that this should be part of the core specification (while I'm currently trying to slim sown the core spec as well). If we'd have broader demand I'd reconsider it.
Purely at API surface, synchronous processing is indeed stateless, but in reality on a real back-end you are consuming real resources, which involves accounting or credit spending. You are probably triggering logging/events at the back-end which need some kind of correlation id anyway. And with concepts like I understand you want to slim down a core spec, but this one would be a simple, optional response header, which just aligns sync and batch jobs. |
The way to add On the other hand, OGC currently discusses to add synchronous processing to the /jobs endpoints (see opengeospatial/ogcapi-processes#437 ). So I'm really hesitant to have in the end /results and /jobs doing very similar things when alignment happens... (And lastly, it seems there's something like |
I'm not sure I get what you mean. On the one hand you say it makes sense to align synchronous and batch more (or at least that there are forces that want to align things), but then you don't want this alignment? I don't think alignments efforts (like this minor request) will lead to ugly redundant definitions in the openEO API, as there is enough of structural difference between sync and batch. |
that's also an interesting pointer indeed |
I think I didn't say that.
That's right. But on a more general level. There is an effort to align OGC API - Processes job handling and openEO job handling, but that's pretty messy and the outcome is unknown at this point. What I probably want to say: There are some unknowns right now that make it a little difficult to judge this. We may add it and then shortly after change it again, which would not be ideal. And generally I'm a bit concerned that sync jobs and batch jobs move so close together that we have two similar parallel instances in the end. (OGC API - Processes for example seems to want to run synchronous processes via /jobs.) |
I'd like to migrate to something standardized such as Content-Identifier (need to check the RFC for the name). At the same time, I'd like to deprecate OpenEO-Identifier. With the migration, I'm happy to add it to /results as well. Then we would just follow HTTP/REST semantics. Thoughts? |
I'm all for integrating with wider standards. |
Yeah, I still need to get confirmation from OGC how/why this was chosen. I also only find e-mail related RFCs. |
For accounting purposes, we want detailed tracking of processing costs. For batch job it's trivial to use the batch job id to associate processing costs. For synchronous requests we use internal "request ids", but that is not exposed in a standard way to the end user.
This PR adds a "OpenEO-Identifier" header to the sync processing response, much like the "create batch job" endpoint