Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikaelvesavuori/get-a-room-ddd-example
Get-A-Room example application using Domain Driven Design and Clean Architecture. Written in TypeScript and deployed to AWS with a serverless stack.
https://github.com/mikaelvesavuori/get-a-room-ddd-example
aws clean-architecture ddd ddd-example example serverless typescript
Last synced: 4 months ago
JSON representation
Get-A-Room example application using Domain Driven Design and Clean Architecture. Written in TypeScript and deployed to AWS with a serverless stack.
- Host: GitHub
- URL: https://github.com/mikaelvesavuori/get-a-room-ddd-example
- Owner: mikaelvesavuori
- License: mit
- Created: 2022-09-28T05:19:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-24T15:21:14.000Z (6 months ago)
- Last Synced: 2024-10-12T22:45:57.869Z (4 months ago)
- Topics: aws, clean-architecture, ddd, ddd-example, example, serverless, typescript
- Language: TypeScript
- Homepage:
- Size: 1.39 MB
- Stars: 35
- Watchers: 2
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Domain Driven Microservices on AWS in Practice
_This project provides a Domain Driven Design & Clean Architecture-informed, multi-service event-driven architecture to run a simple room reservation application._
**Go to [https://ddd.mikaelvesavuori.se](https://ddd.mikaelvesavuori.se) for the book that introduces DDD and our example codebase (this one!).**
## Detailed instructions in READMEs of each Bounded Context (microservice)
This README only sets the overall stage. Please refer to the respective `README.md` files for each microservice in the `code` directory.
---
## Scenario
The expensive and outdated room booking system at your company has been making life miserable for pretty much everyone there. Your team has volunteered to replace the system with a cost-efficient custom implementation, with a target of doing so within the space of one week. To drive down cost and maintenance you've already settled on using serverless cloud technologies as the core components. Now comes the real question: How do you _design_ the system?
You've just had a brainstorming session and a requirements workshop together with stakeholders from the business and office management side of things, as well as with some front end developers in the company.
For now, these are the identified requirements:
- Book rooms in one facility and time zone (could be more later)
- Book rooms in slots of 1 hour (might change or be dynamic later)
- Allow for the cancellation of room bookings
- Your team will focus on providing the back end, APIs and such; Front end is out of scope for your team
- Optional: Allow for rooms that are not checked-in within 10 minutes of their starting time to be cancelledWhen it comes to integration work:
- Assume that the front end will require an updated views on bookings
- Assume that the front end will provide as input:
- The user name
- The room name or ID
- The start and end times of the slot## Solution diagram

## Structure
- `code`: Source code
- `data-modeling`: JSON files that at least roughly attempt to show requests and responses etc.
- `diagrams`: Diagrams for the solution## Out of scope
In the interest of time and energy, certain features of a full solution are excluded from the scope of this exercise. We shouldn't spend time on details like worrying for conflicting names and multiple time zones, as that is not what we are focusing our cognitive effort on here, and the precise scope has to do with an implementation in one location.