# Architecture

The environment is setup as an Elastic Beanstalk environment and includes EC2, RDS, Elasticache and more. Naviga services like Imengine, Open Content and CCT are not included in this overview.

![Naviga Web hosting overview (with Starter Kit 2.0 and later)](https://3066417513-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_HLbYnejnUK_QQoiMy%2F-MR-vGCTazAIru9faPE8%2F-MR-xeHiU6rYq7D-vNAg%2Fimage.png?alt=media\&token=7b57d638-2582-4ca6-8c36-9358a68cc0cc)

## Services

### Route 53

Used to route end users to the application.

### CloudFront and static S3 bucket

As a part of the deployment of application code we upload static files such as .js, .css and image assets to an S3 bucket, these are then fetched through CloudFront and cached. Every deploy will set the git commit version as a environment variable that can be used to ensure that all static files are refreshed after deploy.

### Elastic Load Balancing

Automatically distributes incoming traffic to the different EC2 instances.

### EC2 instances

This is where the actual application runs. The Docker containers are separated and one runs Nginx extended with Lua (OpenResty) and another container with PHP-FPM.

### Elasticache (redis)

A typical Everyware environment includes two Elasticache redis instances, one for the "front-cache" and one for the "object-cache".

The "front-cache" will store generated HTML and supply it to the users directly through nginx without executing any PHP/Wordpress code if applicable.

The "object-cache" stores JSON data retrieved from Open Content and protects the Wordpress database from traffic overload.

### RDS (MySQL)

The Wordpress database instance.

### Open Content

The Open Content that Everyware connects to, this is where we fetch articles, concepts, images and more.

### OC Notifier

The Open Content Notifier will post events to the Everyware servers, these events are used to update the object cache and more.

## Previous versions

### Starter kit 1.x and earlier (deprecated)

![Naviga Web hosting overview (with Starter Kit 1.0)](https://3066417513-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_HLbYnejnUK_QQoiMy%2F-MR-v-ZFwOUdJLTAF07H%2F-MR-v6jjvp7Ns6CV33Py%2Fimage.png?alt=media\&token=518b3d23-869f-447c-a85a-0ffff847c4a0)

##


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.navigaglobal.com/everyware/developer-documentation/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
