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

eval: add a rewrite module to handle queries with namespaces. #1675

Merged
merged 2 commits into from
Aug 20, 2024

Conversation

manolama
Copy link
Contributor

DataSource URIs are sent via HTTP (with retries) and if they incorporate namespace predicates, the service will rewrite them to route to the proper host, removing the namespace predicate.

}
case _ => failWithBody(promise, response)
}
case Failure(ex) =>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah that's how to do it, thanks.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#1677 updates the helper to have a flow option and instrument it better.

I'll have to think about the degradation a bit. Will need to ensure that the rewrite call failing overall will have no impact other than preventing data source changes and that those would get picked up automatically when it recovers.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caching the rewrites for a reconnect? That's the only time we'd need to worry about it right? Otherwise if a new eval was submitted the caller would need to retry.

@brharrington brharrington added this to the 1.8.0 milestone Jul 30, 2024
@manolama manolama force-pushed the tweaks branch 2 times, most recently from a3cd8bd to 2598f1d Compare August 1, 2024 04:25
If configured via `atlas.eval.stream.rewrite-url`, data source URIs are sent to a
rewriting service. Responses with errors are then dropped and the caller notified.
Valid rewrites continue processing.
Some uses, e.g. the atlas-stream case, entail updating the data sources for a
flow when new subscriptions are added or existing subscriptions dropped.
This will return cached rewrites for individual queries in the event the
rewrite backend is unavailable. Calls will continue for the rewrite service
until a successful response is received, at which point it will update the
cache and forward the rewrites downstream.

f
@brharrington brharrington merged commit 48d16a8 into Netflix:main Aug 20, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants