|
1 |
| - |
| 1 | +<img src="./docs/workshop_logo.png" alt="AWS Serverless Developer Experience Workshop Reference Architecture" width="80%" /> |
2 | 2 |
|
3 |
| -# AWS Serverless Developer Experience workshop reference architecture (Python) |
| 3 | +# AWS Serverless Developer Experience workshop reference architecture (.NET) |
4 | 4 |
|
5 | 5 | This repository contains the reference architecture for the AWS Serverless Developer Experience workshop.
|
6 | 6 |
|
7 |
| -The AWS Serverless Developer Experience workshop provides you with an immersive experience of a serverless developer. |
8 |
| -The goal is to provide you with an hands-on experience building a serverless solution using |
9 |
| -the [AWS Serverless Application Model (AWS SAM)](https://aws.amazon.com/serverless/sam/) and AWS SAM CLI. |
| 7 | +The AWS Serverless Developer Experience workshop provides you with an immersive experience as a serverless developer. The goal of this workshop is to provide you with hands-on experience building a serverless solution using the [**AWS Serverless Application Model (AWS SAM)**](https://aws.amazon.com/serverless/sam/) and **AWS SAM CLI**. |
10 | 8 |
|
11 |
| -Along the way, we want to demonstrate principles of event-driven distributed architecture, orchestration, and serverless |
12 |
| -observability, and how to apply them in code. |
| 9 | +Along the way, you will learn about principals of distributed event-driven architectures, messaging patterns, orchestration, and observability and how to apply them in code. You will explore exciting open-source tools, the core features of Powertools for AWS Lambda, and simplified CI/CD deployments supported by AWS SAM Pipelines. |
13 | 10 |
|
14 |
| -We'll also explore open-source tools, core features of AWS Lambda Powertools, and serverless CI/CD deployments. You can |
15 |
| -choose choose to run this workshop in a runtime of your choice — Python, TypeScript, Java, and .NET — and work with your |
16 |
| -own developer setup or use AWS Cloud9 to build the services. |
| 11 | +At the end of this workshop, you will be familiar with Serverless developer workflows and microservice composition using AWS SAM, Serverless development best practices, and applied event-driven architectures. |
17 | 12 |
|
18 |
| -This workshop will take approximately 4 hours to complete. We are assuming that you have some practical development |
19 |
| -skills in one of the supported runtimes, and are familiar with some of the services that we will use in this solution |
20 |
| -which include: [Amazon API Gateway](https://aws.amazon.com/apigateway/), [AWS Lambda](https://aws.amazon.com/lambda/) |
21 |
| -, [Amazon EventBridge](https://aws.amazon.com/eventbridge/) |
22 |
| -, [AWS Step Functions](https://aws.amazon.com/step-functions/) and [Amazon DynamoDB](https://aws.amazon.com/dynamodb/). |
23 |
| - |
24 |
| -## About the Architecture |
| 13 | +## Introducing the Unicorn Properties architecture |
25 | 14 |
|
26 | 15 | 
|
27 | 16 |
|
28 | 17 | Our use case is based on a real estate company called **Unicorn Properties**.
|
29 | 18 |
|
30 |
| -As a real estate agency, **Unicorn Properties** needs to manage the publishing of new property listings and sale |
31 |
| -contracts linked to individual properties, and provide a way for their customers to view approved property listings. |
| 19 | +As a real estate agency, **Unicorn Properties** needs to manage the publishing of new property listings and sale contracts linked to individual properties, and provide a way for their customers to view approved property listings. |
| 20 | + |
| 21 | +To support their needs, Unicorn Properties have adopted a serverless, event-driven approach to designing their architecture. This architecture is centred around two primary domains: **Contracts** (managed by the Contracts Service) and **Properties** (managed by the Web and Properties Services). |
32 | 22 |
|
33 |
| -To support their needs, Unicorn Properties have adopted a serverless, event-driven approach to designing their |
34 |
| -architecture. This architecture is centred around two primary domains: boundaries–Contracts (managed by the Contracts |
35 |
| -Service) and Properties (which are managed by the Properties Web and Properties Services). |
| 23 | +The **Unicorn Contracts** service (namespace: `Unicorn.Contracts`) is a simplified service that manages the contractual relationship between a seller of a property and Unicorn Properties. Contracts are drawn up that define the property for sale, the terms and conditions that Unicorn Properties sets, and how much it will cost the seller to engage the services of the agency. |
36 | 24 |
|
37 |
| -The **Contracts Service** is a simplified service that manages the contractual relationship between a seller of a |
38 |
| -property and Unicorn Properties. Contracts are drawn up that define the property for sale, the terms and conditions that |
39 |
| -Unicorn Properties sets, and how much it will cost the seller to engage the services of the agency. |
| 25 | +The **Unicorn Web** (namespace: `Unicorn.Web`) manages the details of a property listing to be published on the Unicorn Properties website. Every property listing has an address, a sale price, a description of the property, and some photos that members of the public can look at to get them interested in purchasing the property. Only properties that have been approved for publication can be made visible to the public. |
40 | 26 |
|
41 |
| -The **Properties Web** service manages the details of a property listing to be published on the Unicorn Properties |
42 |
| -website. Every property listing has an address, a sale price, a description of the property, and some photos that |
43 |
| -members of the public can look at to get them interested in purchasing the property. **Only properties that have been |
44 |
| -approved for publication can be made visible to the public**. |
| 27 | +The **Unicorn Properties** service (namespace: `Unicorn.Properties`) approves a property listings. This service implements a workflow that checks for the existence of a contract, makes sure that the content and the images are safe to publish, and finally checks that the contract has been approved. We don’t want to publish a property until we have an approved contract! |
45 | 28 |
|
46 |
| -The **Properties Service** approves a listing. This service implements a workflow that checks for the existence of a |
47 |
| -contract, makes sure that the content and the images are safe to publish, and finally checks that the contract has been |
48 |
| -approved. We don’t want to publish a property until we have an approved contract! |
| 29 | +Have a go at building this architecture yourself! Head over to the [Serverless Developer Experience Workshop](https://catalog.workshops.aws/serverless-developer-experience) for more details. |
49 | 30 |
|
50 | 31 | ## Credits
|
51 | 32 |
|
|
0 commit comments