Skip to content

Commit

Permalink
docs: update arch diagrams
Browse files Browse the repository at this point in the history
  • Loading branch information
tjanczuk committed Dec 20, 2023
1 parent ff4b0b2 commit 4342bad
Show file tree
Hide file tree
Showing 13 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ New SaaS businesses cut corners that are hard to fix later. LetsGo gives you a f

This project provides you with the architecture and the tooling that will put your startup on a solid foundation from day one. It helps you save months of work leading to the launch while allowing you to focus on the essence of your product. The day you let the first customer in, you have no technical debt. As you grow, you can continue focusing your resources on what matters most: your customers and your product.

<img width="837" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/f7fe2317-d7de-4698-b093-416a52a1a145">
<img width="950" alt="LetsGo Architecture" src="https://github.com/47chapters/letsgo/assets/822369/c9e803b3-c2ee-4b2e-b8a4-16e107342c4e">

LetsGo does it by providing a prescriptive architecture implemented with a modern set of technologies and robust operational tooling for managing your app in AWS. On day one you get more than most startups build in the first two years:

Expand Down
2 changes: 1 addition & 1 deletion docs/backgound/architecture-and-technology-choices.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Many SaaS applications consist of a similar set of components:

LetsGo includes all of these components in one platform and provides the devops tools to manage multiple deployments in AWS:

<img width="837" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/f7fe2317-d7de-4698-b093-416a52a1a145">
<img width="950" alt="LetsGo Architecture" src="https://github.com/47chapters/letsgo/assets/822369/c9e803b3-c2ee-4b2e-b8a4-16e107342c4e">

The _web_ component implements both the marketing website and the management dashboard. The management dashboard portion of the _web_ component requires user authentication, which is part of the LetsGo platform.

Expand Down
2 changes: 1 addition & 1 deletion docs/backgound/data-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The _database_ component of LetsGo consists of a single [DynamoDB](https://aws.amazon.com/pm/dynamodb) table with a very specific structure and usage pattern described below.

<img width="844" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/490eda3c-e494-4958-9749-252c8ed8fe31">
<img width="938" alt="LetsGo Data Model" src="https://github.com/47chapters/letsgo/assets/822369/a5b2c67f-bd94-4e54-a685-18d3138c7029">

### Table structure

Expand Down
2 changes: 1 addition & 1 deletion docs/backgound/why.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The root of the problem is the lack of a proper foundation to build a new SaaS a

This is where LetsGo comes in. It provides the architecture and the tooling that will put your startup on a solid foundation from day one. It helps you save months of work leading to the launch while allowing you to focus on the essence of your product. The day you let the first customer in, you have no technical debt. As you grow, you can continue focusing your resources on what matters most: your customers and your product.

<img width="837" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/f7fe2317-d7de-4698-b093-416a52a1a145">
<img width="950" alt="LetsGo Architecture" src="https://github.com/47chapters/letsgo/assets/822369/c9e803b3-c2ee-4b2e-b8a4-16e107342c4e">

LetsGo does it by providing a prescriptive architecture implemented with a modern set of technologies and robust operational tooling for managing your app in AWS. On day one you get more than most startups build in the first two years:

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/access-data-in-the-database-from-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

LetsGo provides the `@letsgo/db` package in the `packages/db` directory to facilitate accessing [data in the database](../backgound/data-model.md). It offers basic CRUD operations as well as a listing of items in the database. If you need more advanced constructs, you will need to add new functions to the package.

<img width="844" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/490eda3c-e494-4958-9749-252c8ed8fe31">
<img width="938" alt="LetsGo Data Model" src="https://github.com/47chapters/letsgo/assets/822369/a5b2c67f-bd94-4e54-a685-18d3138c7029">

The `@letsgo/db` package is already included and ready for use in the _API_ and _worker_ components, both when running locally or in the cloud.

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/develop-the-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The _API_ component of the LetsGo boilerplate implements the HTTP APIs your application exposes. This includes APIs that are consumed from the _web_ component, as well as APIs designed to be called by your customer or partner applications.

<img width="831" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/e6787a3a-a1f6-47be-bf95-d19166494b67">
<img width="924" alt="LetsGo API" src="https://github.com/47chapters/letsgo/assets/822369/44dc2631-6911-42c7-b56e-0309fe1bd054">

This article assumes you have [integrated with Auth0 to enable user authentication](../tutorials/setting-up-authentication-with-auth0.md) and [integrated with Stripe to process payments](../tutorials/setting-up-payments-with-stripe.md).

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/develop-the-frontend.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The _web_ component of the LetsGo boilerplate implements the front end of your application. This includes two aspects: your public website (landing page, pricing page, etc.), and the management dashboard for your customers (managing tenants, users, and any settings specific to active subscriptions to your app).

<img width="838" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/3b62360c-8eae-426e-bfb8-eb57e0e5aab6">
<img width="917" alt="LetsGo Web" src="https://github.com/47chapters/letsgo/assets/822369/c144f67d-6025-466a-b366-202f1c92556b">

This article assumes you have [integrated with Auth0 to enable user authentication](../tutorials/setting-up-authentication-with-auth0.md) and [integrated with Stripe to process payments](../tutorials/setting-up-payments-with-stripe.md).

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/develop-the-worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The _worker_ component of the LetsGo boilerplate supports executing asynchronous work in the background, outside of the lifespan of an HTTP request. This work may include processing Stripe events delivered via a webhook, processing contact form submissions from the _web_ component, or work scheduled using a time-based scheduler.

<img width="836" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/835f7840-da4a-4c2e-bd1a-50864fb60c47">
<img width="917" alt="LetsGo Worker" src="https://github.com/47chapters/letsgo/assets/822369/da9622af-5828-4550-bc8e-bb773afdc5e3">

This article assumes you have [integrated with Stripe to process payments](../tutorials/setting-up-payments-with-stripe.md).

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/enqueue-asynchronous-work.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The _worker_ component of the LetsGo boilerplate supports executing asynchronous work in the background, outside of the lifespan of an HTTP request. Aside from processing Stripe events delivered via a webhook, your application may define and schedule its own types of asynchronous work.

<img width="836" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/835f7840-da4a-4c2e-bd1a-50864fb60c47">
<img width="922" alt="LetsGo Worker Enqueue" src="https://github.com/47chapters/letsgo/assets/822369/2bccb03e-a3b0-4c23-bf63-580f69985a6f">

This article assumes you already know how to [develop the worker](./develop-the-worker.md) to define the processing logic for asynchronous work and will talk about ways to schedule it.

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/manage-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Providing configuration settings for the _web_, _API_, and _worker_ components r
1. You set the desired configuration settings in [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) using the `yarn ops config set` command of the LetsGo CLI.
1. During the deployment of your stack using `yarn ops deploy`, a snapshot of the configuration settings in AWS Parameter Store is taken and set as environment variables on the AppRunner service of the _web_ and _API_ components and the AWS Lambda function of the _worker_ component. Configuration of deployed artifacts is immutable until the next deployment.

<img width="835" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/52f10cb4-16fd-4803-9d0d-1c8fe04ee9a0">
<img width="918" alt="LetsGo Config" src="https://github.com/47chapters/letsgo/assets/822369/a38fbf34-fcd9-4d1a-9e18-6b579f8be03b">

For example, to set the memory size of the _API_ processes, you can call:

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/manage-multiple-deployments.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A single deployment of LetsGo consists of the following components:

<img width="837" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/f7fe2317-d7de-4698-b093-416a52a1a145">
<img width="950" alt="LetsGo Architecture" src="https://github.com/47chapters/letsgo/assets/822369/c9e803b3-c2ee-4b2e-b8a4-16e107342c4e">

You can maintain multiple deployments of this stack in the same or different regions of AWS, and the [LetsGo CLI](../reference/letsgo-cli.md) makes it easy to set up and manage them all. You can also use LetsGo CLI to manage LetsGo stacks across different AWS accounts.

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/manage-scalability.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The choice of technologies in the LetsGo infrastructure allows you to control a variety of scalability settings to suit your workload needs. These settings are discussed separately for the _web_, _API_, _worker_, and _database_ components below.

<img width="837" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/af626761-0716-4119-84b2-33f1153d7033">
<img width="911" alt="LetsGo Scalability" src="https://github.com/47chapters/letsgo/assets/822369/9b13a639-f2cb-472a-9567-8167f778b3b9">

### How to set scalability settings

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/schedule-asynchronous-work.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The _worker_ component of the LetsGo boilerplate supports executing asynchronous work in the background triggered by a schedule. This capability enables you to perform periodic background tasks in your application.

<img width="836" alt="image" src="https://github.com/tjanczuk/letsgo/assets/822369/835f7840-da4a-4c2e-bd1a-50864fb60c47">
<img width="924" alt="LetsGo Worker Scheduler" src="https://github.com/47chapters/letsgo/assets/822369/1ea8e2a3-6864-488d-a71a-4b3f0fdfdd05">

This article assumes you already know how to [develop the worker](./develop-the-worker.md) to define the processing logic for asynchronous work and will talk about ways to schedule it.

Expand Down

0 comments on commit 4342bad

Please sign in to comment.