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

What is the main difference between 1x and 2x #148

Closed
d-sauer opened this issue Aug 26, 2015 · 2 comments
Closed

What is the main difference between 1x and 2x #148

d-sauer opened this issue Aug 26, 2015 · 2 comments
Labels

Comments

@d-sauer
Copy link

d-sauer commented Aug 26, 2015

Currently I started working on API GW, using Zuul 1.x
And we are planing to use it as gw for microservices, with some additional filters for adding JWT and some other headers provided by "top" services. This informations should be collected in parallel.

I was planing to use Zuul 2.x, but couldn't find any insights?
What are main advantages, and is it a smart decision to move to 2.x, to be used in future production?

@NiteshKant
Copy link
Contributor

@d-sauer Unfortunately there is no documentation about the motivations for 2.x and what it changes. I am intending to put together something in the coming weeks when time permits. As of today, I hope the following suffices:

What is 2.x?

2.x intends to move zuul from current synchronous execution model to a top to bottom asynchronous processing model. This includes using non-blocking I/O (practically RxNetty as the networking library) and application processing semantics (RxJava as the asynchronous library)

Why 2.x?

Intentionally staying away from proofs and benchmarks, the motivation for 2.x (essentially moving to an async model) is to have better resilience, control and performance characteristics for all applications inside Netflix.

Status

The current status of 2.x is snapshot. We are currently testing the new filter model (async) with blocking I/O inside netflix. Once we are comfortable with this change, we will be testing the changes with non-blocking I/O. After that we will be publishing release candidate and release artifacts.

Should you adopt 2.x now?

2.x is really very bleeding edge (sorry for the cliche) so we will be changing APIs, deployment models and implementations. So, unless you are prepared to take the burden of keeping up with these changes, I would recommend waiting a while.
Also, 2.x comes with lots of changes in usage, so most likely you will have to change all your existing filters, if any. This can be a big task depending on the current usage. So, it is your decision on that front in terms of ROI.

@d-sauer
Copy link
Author

d-sauer commented Aug 27, 2015

@NiteshKant thanks for so detail explanation and for the advice.

@d-sauer d-sauer closed this as completed Aug 27, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants