-
Notifications
You must be signed in to change notification settings - Fork 2.7k
docs: update Architecture doc #9017
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
Conversation
Signed-off-by: Ajay Singh <ajaykripa8736968359@gmail.com>
Signed-off-by: Ajay Singh <ajaykripa8736968359@gmail.com>
@juzhiyuan thoughts on this? |
Too many duplicate commits. Squash them into one. |
@Neilblaze I will squash it till the End Of Day. |
@Ajay-singh1 Any update on this? |
@navendu-pottekkat How does this look like? |
@Neilblaze You can work on this issue.:) |
This pull request has been marked as stale due to 60 days of inactivity. It will be closed in 4 weeks if no further activity occurs. If you think that's incorrect or this pull request should instead be reviewed, please simply write any comment. Even if closed, you can still revive the PR at any time or discuss it on the dev@apisix.apache.org list. Thank you for your contributions. |
|
||
3.Etcd: APISIX uses etcd, a distributed key-value store, to store its configuration data. The configuration data includes information about the backend services, the routes, and the plugins that are used by APISIX. | ||
|
||
4.REST API: APISIX provides a REST API that can be used to configure and manage the gateway. The REST API allows developers to add new routes, plugins, and services, as well as modify the existing configuration. |
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.
Please mention the Admin API and the Control API here.
|
||
## Here is an overview of the architecture | ||
|
||
1.Nginx: APISIX is built on top of Nginx, an open source web server that is known for its high performance and scalability. Nginx acts as a reverse proxy and is responsible for routing the client requests to the appropriate backend service. |
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.
It's good to have a space after the period symbol.
|
||
APISIX also has a set of [built-in Plugins](https://apisix.apache.org/docs/apisix/plugins/batch-requests) that adds features like authentication, security, observability, etc. They are written in Lua. | ||
|
||
## Here is an overview of the architecture |
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.
Please adjust title and not use full sentence here
|
||
1.Nginx: APISIX is built on top of Nginx, an open source web server that is known for its high performance and scalability. Nginx acts as a reverse proxy and is responsible for routing the client requests to the appropriate backend service. | ||
|
||
2.Lua: APISIX is implemented in Lua, a lightweight programming language that is easy to learn and highly extensible. Lua is used to write plugins and extensions that can be added to APISIX to add custom functionality. |
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.
LuaJIT
The diagram below shows how APISIX handles an incoming request and applies corresponding Plugins: | ||
|
||
 | ||
When a request arrives at APISIX, the following steps take place: |
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.
When a request arrives at APISIX, the following steps take place: | |
When a request arrives at APISIX, the following steps take place: |
|
||
6.Load Balancing: APISIX provides load balancing capabilities out of the box. It can distribute traffic evenly across multiple backend services, improving reliability and scalability. | ||
|
||
7.Caching: APISIX has a built-in caching system that can be used to cache responses from backend services. This can improve performance and reduce the load on the backend services. |
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.
What is this built-in caching system referring to? With the proxy-cache
plugin?
|
||
 | ||
|
||
In APISIX, the order in which plugins are applied to a request is determined by the order in which they are specified in the configuration file. There are several different types of plugins that can be applied to a request, and they can be categorized into three main groups based on when they are executed: |
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.
Information here does not correspond with the digram above and is more geared towards plugin execution order. Plugin execution orders has been covered here: https://apisix.apache.org/docs/apisix/terminology/plugin/#plugins-merging-precedence
Please update.
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.
The sentence above The chart below shows the order in which different types of Plugin are applied to a request:
is actually not accurate for what the diagram is about, so it may have misled you. The diagram is more for the plugin internal.
@kayx23 Can you work on this issue I don't quite understand the working of the API Gateway |
If you don't understand what you're writing about / generating then how's the content going to help others? The content don't really correspond to the diagram that well and I suggest we just close this PR. cc @monkeyDluffy6017 |
I'm going to close this pr, feel free to reopen it |
Description
Updated The Documentation
Better Understanding of the Components
Fixes #7336
Checklist