Skip to content

Conversation

Ajay-singh1
Copy link
Contributor

@Ajay-singh1 Ajay-singh1 commented Mar 6, 2023

Description

Updated The Documentation

Better Understanding of the Components
Fixes #7336

Checklist

  • I have explained the need for this PR and the problem it solves
  • I have explained the changes or the new features added to this PR
  • I have added tests corresponding to this change
  • I have updated the documentation to reflect this change
  • I have verified that this change is backward compatible (If not, please discuss on the APISIX mailing list first)

@Ajay-singh1
Copy link
Contributor Author

@juzhiyuan thoughts on this?

@Neilblaze
Copy link
Contributor

Too many duplicate commits. Squash them into one.

@Ajay-singh1
Copy link
Contributor Author

@Neilblaze I will squash it till the End Of Day.

@Neilblaze
Copy link
Contributor

@Ajay-singh1 Any update on this?

@Ajay-singh1
Copy link
Contributor Author

@navendu-pottekkat How does this look like?

@pottekkat pottekkat requested review from pottekkat, bzp2010, spacewander and tokers and removed request for pottekkat May 12, 2023 09:40
@Ajay-singh1
Copy link
Contributor Author

@Neilblaze You can work on this issue.:)

@github-actions
Copy link

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.

@github-actions github-actions bot added the stale label Sep 27, 2023

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.
Copy link
Contributor

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.
Copy link
Contributor

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
Copy link
Member

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.
Copy link
Member

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:

![flow-load-plugin](https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flow-load-plugin.png)
When a request arrives at APISIX, the following steps take place:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
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.
Copy link
Member

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?


![flow-plugin-internal](https://raw.githubusercontent.com/apache/apisix/master/docs/assets/images/flow-plugin-internal.png)

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:
Copy link
Member

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.

Copy link
Member

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 kayx23 changed the title docs: architecture-design-fix docs: update Architecture doc Oct 13, 2023
@kayx23 kayx23 added wait for update wait for the author's response in this issue/PR and removed stale labels Oct 13, 2023
@Ajay-singh1
Copy link
Contributor Author

@kayx23 Can you work on this issue I don't quite understand the working of the API Gateway

@kayx23
Copy link
Member

kayx23 commented Oct 20, 2023

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

@monkeyDluffy6017
Copy link
Contributor

I'm going to close this pr, feel free to reopen it

@Ajay-singh1 Ajay-singh1 deleted the docs-apisix-architecture branch August 3, 2024 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
user responded wait for update wait for the author's response in this issue/PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

docs: Add descriptions for "APISIX Architecture" docs
5 participants