Skip to content

Structure

Rhett Lowe edited this page Apr 6, 2020 · 4 revisions

This application, like most, is broken into two parts: Backend and Frontend.

Frontend

The frontend of this application will be a static Javascript application. It will be hosted on an AWS S3 Bucket and will be in HTTPS (termination provided by AWS Cloudfront).

Backend

The backend will have services separated by concerns and segregated to allow multiple apps, other than this single app, to utilize their features more easily. The frontend of this application will access the backend services via a single application gateway providing a federated GraphQL API

Structure

Gateway Communication Structure

Description of elements

There are three element types in this description

  1. The Green Box holds the frontend which is accessed almost directly by the client.
  2. The Blue Box is the gateway api for this service. allowing for a single endpoint to access the other services.
  3. The Yellow Boxes hold an AWS Lambda GraphQL micro-services where all the data is held/managed

Structure Described

In the graph above, the user is directly accessing 2 endpoints. The user accesses the static frontend, stored in an S3 Bucket, via Cloudfront. Once the site is loaded into the browser, Javascript will call the backend gateway endpoint to request the data needed to load the site's templates and display content. The gateway endpoint does very minor processing and reroutes requests to the other services. The backend gateway knows the permissions needed and how to obtain the data required to handle the frontend request. It also saves a number of security/permissions nightmares. This also connect to SES to send emails as needed (this may be extracted later).


For information about the technologies listed here, please look at the Technologies page.

Clone this wiki locally