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

Asynchronous Searches #13

Open
fschiettecatte opened this issue Jun 27, 2018 · 5 comments
Open

Asynchronous Searches #13

fschiettecatte opened this issue Jun 27, 2018 · 5 comments
Labels
component Issues to do with specific individual components enhancement New feature or request
Milestone

Comments

@fschiettecatte
Copy link
Contributor

  • Do we want to support asynchronous searches? This would mean:
    • Allowing the querier to tell the host to run the search asynchronously.
    • Allowing the host to tell the querier that it decided to run the search asynchronously (or that the search can only be run asynchronously??).
    • In both cases a callback would need to be specified so that the host can return the results to the querier.
    • There needs to be a clear network path between the querier and the host.
    • All this would require the use of the query identification so that the querier can reconcile results with the original request.
@Relequestual Relequestual added this to the > 0.1.0 milestone Jul 5, 2018
@Relequestual
Copy link
Member

What's the use case for allowing the Client (Querier) to tell the Server to run the search asynchronously?

All this would require the use of the query identification so that the querier can reconcile results with the original request.

Maybe, maybe not. There are (at least) three possible ways to handle this:

  • Client specifies an ID, which then gets used someway by the Server when it's ready to respond
  • Server includes an ID that it assings to the request, while telling the Client it will be handled async (probably HTTP status 202)
  • Client must specify a unique URL when allowing for async responses

The last option feels the least problematic to me, as we don't need to specify some way to use an ID, and in stead the Client is responsible for providing the callback URL.

How to handle situations?

The Server can require the use of a component which specifies the callback URL, either by default, or a response which denotes a client error (HTTP 422 in this case), allowing the client to fix the issue and retry. This approach is similar to content negotiation, and we would need to define a component which indicates instructions to the Client, like "essential missing component X", which allows the Client to include such a compoenent if they are able to do so, or report an error to the end user.

@Relequestual
Copy link
Member

@harindra-a Do you know if this will be required for the initial implementations? I would guess not.

@Relequestual Relequestual added enhancement New feature or request component Issues to do with specific individual components labels Jul 5, 2018
@fschiettecatte
Copy link
Contributor Author

I would say that this is not required, it introduces a lot of complexity. We had this in MME v1 and tossed it out as not needed.

@harindra-a
Copy link
Contributor

Agree, I don't see this being required and introduces complexity. Let's keep (at least) first release simple

@Relequestual
Copy link
Member

Great, it will not be considered for the initial release.

We should watch out for anyone who requests this functionality, and ask them which of hte possible solutions they feel makes the most sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component Issues to do with specific individual components enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants