A Video Catalog Management Service designed with Domain-Driven Design (DDD) and Clean Architecture concepts.
- JDK 17
The system domain is composed of the following models:
- Video: represents each binary video file available on the platform.
- Cast Member: represents each actor who performs in a video.
- Genre: represents the video stylistic or thematic category.
- Category: represents the category of each video.
The project structure follows a 3-layered pattern, where the domain layer is on the highest level, and each layer knows only the layers above it:
- domain
- application
- infrastructure
The project adopts the following patterns from DDD for structuring the domain models:
- Entities: represent objects that are distinguished by their identities.
- Value Objects: represent objects that are distinguished by their attributes.
- Aggregates: represent entities that are responsible for clustering other entities and value objects.