Skip to content
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

Subscribe to record changes #111

Open
m-mohr opened this issue Apr 26, 2021 · 10 comments
Open

Subscribe to record changes #111

m-mohr opened this issue Apr 26, 2021 · 10 comments
Assignees

Comments

@m-mohr
Copy link
Contributor

m-mohr commented Apr 26, 2021

Have there been considerations about an API that allows subscribing to events, e.g. when a new record has been added? This could include restricting the subscription to certain filters such as time and space, but could in principle be anything that you can express with CQL.

Obviously, OGC API - Records is using HTTP and as such has a focus on pulling information and not pushing them, but it still seems to be an obvious use case that arises from a catalog service.

I've opened it in records as it seems to be the OGC API that fits best, but in theory, this could be developed in any of the OGC WGs, e.g. Features, Commons, or even outside of OGC APIs, e.g. in OpenSearch. So if this is out of scope of Records, is there anything like that in the OGC world that you are aware of?

@m-mohr
Copy link
Contributor Author

m-mohr commented Apr 26, 2021

Could be related to opengeospatial/ogcapi-common#231 and OGC PubSub.

@mhogeweg
Copy link
Contributor

Perhaps as part of this discussion it is worth considering the role of off-the-shelf automation engines like integromat, zapier, and a slew of others commonly used to integrate systems using messaging, webhooks or other existing mechanisms

@pvretano
Copy link
Contributor

Actually, there might be something we could do in core and that is include a conformance class about callbacks (see: https://swagger.io/docs/specification/callbacks/). This needs to be discussed in the SWG so I am moving the issue from "Extensions" to "To Do".

@cportele
Copy link
Member

To me this is not Core, this is an extension. Core should be restricted to the capabilities that almost every implementation will want to support.

@tomkralidis
Copy link
Contributor

SWG 2021-06-17: make this a generic extension (many standards, many levels), i.e. OGC API - Common. Start writing around requirement with Common in mind and evolve it to Common.

@pvretano
Copy link
Contributor

pvretano commented Apr 7, 2023

07-APR-2023: @tomkralidis is writing a conformance class for PubSub for EDR (see: opengeospatial/MetOceanDWG#10). @pvretano will write something similar for records. This will not be part of core.

@tomkralidis
Copy link
Contributor

Note that OGC API - Pub/Sub conformance class is put forth in EDR in opengeospatial/ogcapi-environmental-data-retrieval#426

@rob-metalinkage
Copy link

It feels as if pub/sub should be a separate extension that can be implemented optionally.

It should itself have an optional conformance class for querying and exposing the same change metadata that a subscriber would receive in pub/sub, but by poll

@tomkralidis
Copy link
Contributor

It feels as if pub/sub should be a separate extension that can be implemented optionally.

Agree. The OGC API - Pub/Sub conformance class is being put forth initially in EDR but will be implemented in a generic way so that it can be implemented as a building block. In this sense, an OGC API - Records Extension on record changes can have a dependency on OGC API - Pub/Sub and add any applicable bits accordingly.

It should itself have an optional conformance class for querying and exposing the same change metadata that a subscriber would receive in pub/sub, but by poll

Wouldn't polling OGC API - Records (either via a queryable /collections endpoint or .../items) with CQL against the updated queryable help in this regard?

@tomkralidis
Copy link
Contributor

Notes:

In any case, it makes sense to align Pub/Sub workflows in Records to the above over time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants