├── 02-publish_messages ├── 1-prepare_localstack │ ├── .gitignore │ ├── 1-configure.sh │ ├── 2-list_queues.sh │ ├── 3-publish_message.sh │ ├── 4-consume_message.sh │ ├── 5-delete_message.sh │ └── docker-compose.yml ├── 2-publish_event_to_eventbridge │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-configure.sh │ ├── Makefile │ ├── README.md │ ├── databases │ │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ │ └── http │ │ │ ├── seller_backoffice │ │ │ ├── product-GET.http │ │ │ ├── product-PUT.http │ │ │ └── products-GET.http │ │ │ └── shop │ │ │ ├── product-GET.http │ │ │ ├── product_review-PUT.http │ │ │ ├── product_reviews-GET.http │ │ │ ├── products-GET.http │ │ │ ├── user-GET.http │ │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ └── codely.svg │ ├── src │ │ ├── app │ │ │ └── api │ │ │ │ ├── seller_backoffice │ │ │ │ └── products │ │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ └── shop │ │ │ │ ├── product_reviews │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ ├── products │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [id] │ │ │ │ └── route.ts │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── send_welcome_email │ │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ │ └── domain │ │ │ │ │ ├── Email.ts │ │ │ │ │ ├── EmailBody.ts │ │ │ │ │ ├── EmailId.ts │ │ │ │ │ ├── EmailSender.ts │ │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── .gitkeep │ │ │ │ └── update_last_activity_date │ │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ │ └── domain │ │ │ │ ├── RetentionUser.ts │ │ │ │ └── RetentionUserRepository.ts │ │ │ ├── seller_backoffice │ │ │ └── products │ │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductCreator.ts │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRepository.ts │ │ │ │ └── ProductViews.ts │ │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── AggregateRoot.ts │ │ │ │ ├── Collection.ts │ │ │ │ ├── EmailAddress.ts │ │ │ │ ├── Identifier.ts │ │ │ │ ├── Money.ts │ │ │ │ ├── StringValueObject.ts │ │ │ │ ├── UuidGenerator.ts │ │ │ │ └── event │ │ │ │ │ ├── DomainEvent.ts │ │ │ │ │ ├── DomainEventName.ts │ │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ │ ├── MariaDBConnection.ts │ │ │ │ └── event_bus │ │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ │ └── InMemoryEventBus.ts │ │ │ └── shop │ │ │ ├── product_reviews │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductReviewCreator.ts │ │ │ │ └── search_by_product_id │ │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ │ ├── domain │ │ │ │ ├── ProductReview.ts │ │ │ │ ├── ProductReviewComment.ts │ │ │ │ ├── ProductReviewId.ts │ │ │ │ ├── ProductReviewRating.ts │ │ │ │ └── ProductReviewRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductReviewRepository.ts │ │ │ ├── products │ │ │ ├── application │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductFeaturedReview.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRating.ts │ │ │ │ └── ProductRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.ts │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ ├── search │ │ │ │ └── UserSearcher.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.ts │ │ │ ├── domain │ │ │ ├── User.ts │ │ │ ├── UserArchivedDomainEvent.ts │ │ │ ├── UserDoesNotExist.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ │ ├── UserFinder.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ │ ├── domain │ │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ │ ├── EmailIdMother.ts │ │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── MockEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ │ ├── domain │ │ │ │ └── RetentionUserMother.ts │ │ │ │ └── infrastructure │ │ │ │ └── MockRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── EmailAddressMother.ts │ │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ │ ├── MockEventBus.ts │ │ │ │ └── MockUuidGenerator.ts │ │ │ └── shop │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.test.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserArchivedDomainEventMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ └── MockUserRepository.ts │ └── tsconfig.json └── 3-publication_fallback │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-configure.sh │ ├── Makefile │ ├── README.md │ ├── databases │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ └── http │ │ ├── seller_backoffice │ │ ├── product-GET.http │ │ ├── product-PUT.http │ │ └── products-GET.http │ │ ├── shared │ │ └── event_bus-POST.http │ │ └── shop │ │ ├── product-GET.http │ │ ├── product_review-PUT.http │ │ ├── product_reviews-GET.http │ │ ├── products-GET.http │ │ ├── user-GET.http │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ └── codely.svg │ ├── src │ ├── app │ │ └── api │ │ │ ├── seller_backoffice │ │ │ └── products │ │ │ │ ├── [id] │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── shared │ │ │ └── event_bus │ │ │ │ └── route.ts │ │ │ └── shop │ │ │ ├── product_reviews │ │ │ ├── [id] │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ │ ├── products │ │ │ ├── [id] │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ │ └── users │ │ │ └── [id] │ │ │ └── route.ts │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── send_welcome_email │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ └── domain │ │ │ │ ├── Email.ts │ │ │ │ ├── EmailBody.ts │ │ │ │ ├── EmailId.ts │ │ │ │ ├── EmailSender.ts │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ └── user │ │ │ ├── application │ │ │ ├── create │ │ │ │ └── .gitkeep │ │ │ └── update_last_activity_date │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ └── domain │ │ │ ├── RetentionUser.ts │ │ │ └── RetentionUserRepository.ts │ │ ├── seller_backoffice │ │ └── products │ │ │ ├── application │ │ │ ├── create │ │ │ │ └── ProductCreator.ts │ │ │ ├── search │ │ │ │ └── ProductSearcher.ts │ │ │ └── search_all │ │ │ │ └── AllProductsSearcher.ts │ │ │ ├── domain │ │ │ ├── Product.ts │ │ │ ├── ProductId.ts │ │ │ ├── ProductImageUrl.ts │ │ │ ├── ProductImageUrls.ts │ │ │ ├── ProductName.ts │ │ │ ├── ProductRepository.ts │ │ │ └── ProductViews.ts │ │ │ └── infrastructure │ │ │ └── MySqlProductRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── AggregateRoot.ts │ │ │ ├── Collection.ts │ │ │ ├── EmailAddress.ts │ │ │ ├── Identifier.ts │ │ │ ├── Money.ts │ │ │ ├── StringValueObject.ts │ │ │ ├── UuidGenerator.ts │ │ │ └── event │ │ │ │ ├── DomainEvent.ts │ │ │ │ ├── DomainEventName.ts │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ │ ├── MariaDBConnection.ts │ │ │ └── event_bus │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ ├── InMemoryEventBus.ts │ │ │ └── failover │ │ │ └── DomainEventFailover.ts │ │ └── shop │ │ ├── product_reviews │ │ ├── application │ │ │ ├── create │ │ │ │ └── ProductReviewCreator.ts │ │ │ └── search_by_product_id │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ ├── domain │ │ │ ├── ProductReview.ts │ │ │ ├── ProductReviewComment.ts │ │ │ ├── ProductReviewId.ts │ │ │ ├── ProductReviewRating.ts │ │ │ └── ProductReviewRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductReviewRepository.ts │ │ ├── products │ │ ├── application │ │ │ ├── search │ │ │ │ └── ProductSearcher.ts │ │ │ └── search_all │ │ │ │ └── AllProductsSearcher.ts │ │ ├── domain │ │ │ ├── Product.ts │ │ │ ├── ProductFeaturedReview.ts │ │ │ ├── ProductId.ts │ │ │ ├── ProductImageUrl.ts │ │ │ ├── ProductImageUrls.ts │ │ │ ├── ProductName.ts │ │ │ ├── ProductRating.ts │ │ │ └── ProductRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductRepository.ts │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.ts │ │ ├── find │ │ │ └── UserFinder.ts │ │ ├── registrar │ │ │ └── UserRegistrar.ts │ │ ├── search │ │ │ └── UserSearcher.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.ts │ │ ├── domain │ │ ├── User.ts │ │ ├── UserArchivedDomainEvent.ts │ │ ├── UserDoesNotExist.ts │ │ ├── UserEmail.ts │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ ├── UserFinder.ts │ │ ├── UserId.ts │ │ ├── UserName.ts │ │ ├── UserProfilePicture.ts │ │ ├── UserRegisteredDomainEvent.ts │ │ ├── UserRepository.ts │ │ └── UserStatus.ts │ │ └── infrastructure │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ ├── domain │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ ├── EmailIdMother.ts │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ └── infrastructure │ │ │ │ └── MockEmailSender.ts │ │ └── user │ │ │ ├── application │ │ │ └── update_last_activity_date │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ ├── domain │ │ │ └── RetentionUserMother.ts │ │ │ └── infrastructure │ │ │ └── MockRetentionUserRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── EmailAddressMother.ts │ │ │ └── EnumMother.ts │ │ └── infrastructure │ │ │ ├── MockEventBus.ts │ │ │ └── MockUuidGenerator.ts │ │ └── shop │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.test.ts │ │ ├── registrar │ │ │ └── UserRegistrar.test.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.test.ts │ │ ├── domain │ │ ├── DateMother.ts │ │ ├── UserArchivedDomainEventMother.ts │ │ ├── UserEmailMother.ts │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ ├── UserIdMother.ts │ │ ├── UserMother.ts │ │ ├── UserNameMother.ts │ │ ├── UserProfilePictureMother.ts │ │ └── UserRegisteredDomainEventMother.ts │ │ └── infrastructure │ │ └── MockUserRepository.ts │ └── tsconfig.json ├── 04-generate_queues_automatically ├── 1-configure_programatically │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-configure.sh │ ├── 2-test_message.sh │ ├── Makefile │ ├── README.md │ ├── databases │ │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ │ └── http │ │ │ ├── seller_backoffice │ │ │ ├── product-GET.http │ │ │ ├── product-PUT.http │ │ │ └── products-GET.http │ │ │ ├── shared │ │ │ └── event_bus-POST.http │ │ │ └── shop │ │ │ ├── product-GET.http │ │ │ ├── product_review-PUT.http │ │ │ ├── product_reviews-GET.http │ │ │ ├── products-GET.http │ │ │ ├── user-GET.http │ │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ └── codely.svg │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ ├── seller_backoffice │ │ │ │ │ └── products │ │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ └── route.ts │ │ │ │ ├── shared │ │ │ │ │ └── event_bus │ │ │ │ │ │ └── route.ts │ │ │ │ └── shop │ │ │ │ │ ├── product_reviews │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ ├── products │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ └── scripts │ │ │ │ └── configure-eventbridge_sqs.ts │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── send_welcome_email │ │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ │ └── domain │ │ │ │ │ ├── Email.ts │ │ │ │ │ ├── EmailBody.ts │ │ │ │ │ ├── EmailId.ts │ │ │ │ │ ├── EmailSender.ts │ │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── .gitkeep │ │ │ │ └── update_last_activity_date │ │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ │ └── domain │ │ │ │ ├── RetentionUser.ts │ │ │ │ └── RetentionUserRepository.ts │ │ │ ├── seller_backoffice │ │ │ └── products │ │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductCreator.ts │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRepository.ts │ │ │ │ └── ProductViews.ts │ │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── AggregateRoot.ts │ │ │ │ ├── Collection.ts │ │ │ │ ├── EmailAddress.ts │ │ │ │ ├── Identifier.ts │ │ │ │ ├── Money.ts │ │ │ │ ├── StringValueObject.ts │ │ │ │ ├── UuidGenerator.ts │ │ │ │ └── event │ │ │ │ │ ├── DomainEvent.ts │ │ │ │ │ ├── DomainEventName.ts │ │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ │ ├── MariaDBConnection.ts │ │ │ │ └── event_bus │ │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ │ ├── InMemoryEventBus.ts │ │ │ │ └── failover │ │ │ │ └── DomainEventFailover.ts │ │ │ └── shop │ │ │ ├── product_reviews │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductReviewCreator.ts │ │ │ │ └── search_by_product_id │ │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ │ ├── domain │ │ │ │ ├── ProductReview.ts │ │ │ │ ├── ProductReviewComment.ts │ │ │ │ ├── ProductReviewId.ts │ │ │ │ ├── ProductReviewRating.ts │ │ │ │ └── ProductReviewRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductReviewRepository.ts │ │ │ ├── products │ │ │ ├── application │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductFeaturedReview.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRating.ts │ │ │ │ └── ProductRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.ts │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ ├── search │ │ │ │ └── UserSearcher.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.ts │ │ │ ├── domain │ │ │ ├── User.ts │ │ │ ├── UserArchivedDomainEvent.ts │ │ │ ├── UserDoesNotExist.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ │ ├── UserFinder.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ │ ├── domain │ │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ │ ├── EmailIdMother.ts │ │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── MockEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ │ ├── domain │ │ │ │ └── RetentionUserMother.ts │ │ │ │ └── infrastructure │ │ │ │ └── MockRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── EmailAddressMother.ts │ │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ │ ├── MockEventBus.ts │ │ │ │ └── MockUuidGenerator.ts │ │ │ └── shop │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.test.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserArchivedDomainEventMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ └── MockUserRepository.ts │ └── tsconfig.json ├── 2-generate_queues_dynamically │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-test_messages.sh │ ├── Makefile │ ├── README.md │ ├── databases │ │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ │ └── http │ │ │ ├── seller_backoffice │ │ │ ├── product-GET.http │ │ │ ├── product-PUT.http │ │ │ └── products-GET.http │ │ │ ├── shared │ │ │ └── event_bus-POST.http │ │ │ └── shop │ │ │ ├── product-GET.http │ │ │ ├── product_review-PUT.http │ │ │ ├── product_reviews-GET.http │ │ │ ├── products-GET.http │ │ │ ├── user-GET.http │ │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ └── codely.svg │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ ├── seller_backoffice │ │ │ │ │ └── products │ │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ └── route.ts │ │ │ │ ├── shared │ │ │ │ │ └── event_bus │ │ │ │ │ │ └── route.ts │ │ │ │ └── shop │ │ │ │ │ ├── product_reviews │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ ├── products │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ └── scripts │ │ │ │ └── configure-eventbridge_sqs.ts │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── send_welcome_email │ │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ │ ├── domain │ │ │ │ │ ├── Email.ts │ │ │ │ │ ├── EmailBody.ts │ │ │ │ │ ├── EmailId.ts │ │ │ │ │ ├── EmailSender.ts │ │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── FakeEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ │ ├── domain │ │ │ │ ├── RetentionUser.ts │ │ │ │ └── RetentionUserRepository.ts │ │ │ │ └── infrastructure │ │ │ │ └── FakeRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── AggregateRoot.ts │ │ │ │ ├── Collection.ts │ │ │ │ ├── EmailAddress.ts │ │ │ │ ├── Identifier.ts │ │ │ │ ├── Money.ts │ │ │ │ ├── StringValueObject.ts │ │ │ │ ├── UuidGenerator.ts │ │ │ │ └── event │ │ │ │ │ ├── DomainEvent.ts │ │ │ │ │ ├── DomainEventName.ts │ │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ │ ├── MariaDBConnection.ts │ │ │ │ ├── OfficialUuidGenerator.ts │ │ │ │ ├── dependency_injection │ │ │ │ ├── Subscriber.ts │ │ │ │ └── diod.config.ts │ │ │ │ └── event_bus │ │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ │ ├── InMemoryEventBus.ts │ │ │ │ └── failover │ │ │ │ └── DomainEventFailover.ts │ │ │ └── shop │ │ │ ├── product_reviews │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductReviewCreator.ts │ │ │ │ └── search_by_product_id │ │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ │ ├── domain │ │ │ │ ├── ProductReview.ts │ │ │ │ ├── ProductReviewComment.ts │ │ │ │ ├── ProductReviewId.ts │ │ │ │ ├── ProductReviewRating.ts │ │ │ │ └── ProductReviewRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductReviewRepository.ts │ │ │ ├── products │ │ │ ├── application │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductFeaturedReview.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRating.ts │ │ │ │ └── ProductRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.ts │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ ├── search │ │ │ │ └── UserSearcher.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.ts │ │ │ ├── domain │ │ │ ├── User.ts │ │ │ ├── UserArchivedDomainEvent.ts │ │ │ ├── UserDoesNotExist.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ │ ├── UserFinder.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ │ ├── domain │ │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ │ ├── EmailIdMother.ts │ │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── MockEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ │ ├── domain │ │ │ │ └── RetentionUserMother.ts │ │ │ │ └── infrastructure │ │ │ │ └── MockRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── EmailAddressMother.ts │ │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ │ ├── MockEventBus.ts │ │ │ │ └── MockUuidGenerator.ts │ │ │ └── shop │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.test.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserArchivedDomainEventMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ └── MockUserRepository.ts │ └── tsconfig.json └── 3-queues_with_wildcard_binding │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-test_messages.sh │ ├── Makefile │ ├── README.md │ ├── databases │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ └── http │ │ ├── seller_backoffice │ │ ├── product-GET.http │ │ ├── product-PUT.http │ │ └── products-GET.http │ │ ├── shared │ │ └── event_bus-POST.http │ │ └── shop │ │ ├── product-GET.http │ │ ├── product_review-PUT.http │ │ ├── product_reviews-GET.http │ │ ├── products-GET.http │ │ ├── user-GET.http │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ └── codely.svg │ ├── src │ ├── app │ │ ├── api │ │ │ ├── seller_backoffice │ │ │ │ └── products │ │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ ├── shared │ │ │ │ └── event_bus │ │ │ │ │ └── route.ts │ │ │ └── shop │ │ │ │ ├── product_reviews │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ ├── products │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [id] │ │ │ │ └── route.ts │ │ └── scripts │ │ │ └── configure-eventbridge_sqs.ts │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── send_welcome_email │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ ├── domain │ │ │ │ ├── Email.ts │ │ │ │ ├── EmailBody.ts │ │ │ │ ├── EmailId.ts │ │ │ │ ├── EmailSender.ts │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ └── infrastructure │ │ │ │ └── FakeEmailSender.ts │ │ └── user │ │ │ ├── application │ │ │ └── update_last_activity_date │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ ├── domain │ │ │ ├── RetentionUser.ts │ │ │ └── RetentionUserRepository.ts │ │ │ └── infrastructure │ │ │ └── FakeRetentionUserRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── AggregateRoot.ts │ │ │ ├── Collection.ts │ │ │ ├── EmailAddress.ts │ │ │ ├── Identifier.ts │ │ │ ├── Money.ts │ │ │ ├── StringValueObject.ts │ │ │ ├── UuidGenerator.ts │ │ │ └── event │ │ │ │ ├── DomainEvent.ts │ │ │ │ ├── DomainEventName.ts │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ │ ├── MariaDBConnection.ts │ │ │ ├── OfficialUuidGenerator.ts │ │ │ ├── dependency_injection │ │ │ ├── Subscriber.ts │ │ │ └── diod.config.ts │ │ │ └── event_bus │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ ├── InMemoryEventBus.ts │ │ │ └── failover │ │ │ └── DomainEventFailover.ts │ │ └── shop │ │ ├── product_reviews │ │ ├── application │ │ │ ├── create │ │ │ │ └── ProductReviewCreator.ts │ │ │ └── search_by_product_id │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ ├── domain │ │ │ ├── ProductReview.ts │ │ │ ├── ProductReviewComment.ts │ │ │ ├── ProductReviewId.ts │ │ │ ├── ProductReviewRating.ts │ │ │ └── ProductReviewRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductReviewRepository.ts │ │ ├── products │ │ ├── application │ │ │ ├── search │ │ │ │ └── ProductSearcher.ts │ │ │ └── search_all │ │ │ │ └── AllProductsSearcher.ts │ │ ├── domain │ │ │ ├── Product.ts │ │ │ ├── ProductFeaturedReview.ts │ │ │ ├── ProductId.ts │ │ │ ├── ProductImageUrl.ts │ │ │ ├── ProductImageUrls.ts │ │ │ ├── ProductName.ts │ │ │ ├── ProductRating.ts │ │ │ └── ProductRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductRepository.ts │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.ts │ │ ├── find │ │ │ └── UserFinder.ts │ │ ├── registrar │ │ │ └── UserRegistrar.ts │ │ ├── search │ │ │ └── UserSearcher.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.ts │ │ ├── domain │ │ ├── User.ts │ │ ├── UserArchivedDomainEvent.ts │ │ ├── UserDoesNotExist.ts │ │ ├── UserDomainEvent.ts │ │ ├── UserEmail.ts │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ ├── UserFinder.ts │ │ ├── UserId.ts │ │ ├── UserName.ts │ │ ├── UserProfilePicture.ts │ │ ├── UserRegisteredDomainEvent.ts │ │ ├── UserRepository.ts │ │ └── UserStatus.ts │ │ └── infrastructure │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ ├── domain │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ ├── EmailIdMother.ts │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ └── infrastructure │ │ │ │ └── MockEmailSender.ts │ │ └── user │ │ │ ├── application │ │ │ └── update_last_activity_date │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ ├── domain │ │ │ └── RetentionUserMother.ts │ │ │ └── infrastructure │ │ │ └── MockRetentionUserRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── EmailAddressMother.ts │ │ │ └── EnumMother.ts │ │ └── infrastructure │ │ │ ├── MockEventBus.ts │ │ │ └── MockUuidGenerator.ts │ │ └── shop │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.test.ts │ │ ├── registrar │ │ │ └── UserRegistrar.test.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.test.ts │ │ ├── domain │ │ ├── DateMother.ts │ │ ├── UserArchivedDomainEventMother.ts │ │ ├── UserEmailMother.ts │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ ├── UserIdMother.ts │ │ ├── UserMother.ts │ │ ├── UserNameMother.ts │ │ ├── UserProfilePictureMother.ts │ │ └── UserRegisteredDomainEventMother.ts │ │ └── infrastructure │ │ └── MockUserRepository.ts │ └── tsconfig.json ├── 05-add_resilience ├── 1-consume_events │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-test_messages.sh │ ├── Makefile │ ├── README.md │ ├── databases │ │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ │ └── http │ │ │ ├── seller_backoffice │ │ │ ├── product-GET.http │ │ │ ├── product-PUT.http │ │ │ └── products-GET.http │ │ │ ├── shared │ │ │ └── event_bus-POST.http │ │ │ └── shop │ │ │ ├── product-GET.http │ │ │ ├── product_review-PUT.http │ │ │ ├── product_reviews-GET.http │ │ │ ├── products-GET.http │ │ │ ├── user-GET.http │ │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ └── codely.svg │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ ├── seller_backoffice │ │ │ │ │ └── products │ │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ └── route.ts │ │ │ │ ├── shared │ │ │ │ │ └── event_bus │ │ │ │ │ │ └── route.ts │ │ │ │ └── shop │ │ │ │ │ ├── product_reviews │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ ├── products │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ └── scripts │ │ │ │ ├── configure-eventbridge_sqs.ts │ │ │ │ └── consume-sqs.ts │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── send_welcome_email │ │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ │ ├── domain │ │ │ │ │ ├── Email.ts │ │ │ │ │ ├── EmailBody.ts │ │ │ │ │ ├── EmailId.ts │ │ │ │ │ ├── EmailSender.ts │ │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── FakeEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ │ ├── domain │ │ │ │ ├── RetentionUser.ts │ │ │ │ └── RetentionUserRepository.ts │ │ │ │ └── infrastructure │ │ │ │ └── FakeRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── AggregateRoot.ts │ │ │ │ ├── Collection.ts │ │ │ │ ├── EmailAddress.ts │ │ │ │ ├── Identifier.ts │ │ │ │ ├── Money.ts │ │ │ │ ├── StringValueObject.ts │ │ │ │ ├── UuidGenerator.ts │ │ │ │ └── event │ │ │ │ │ ├── DomainEvent.ts │ │ │ │ │ ├── DomainEventClass.ts │ │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ │ ├── MariaDBConnection.ts │ │ │ │ ├── OfficialUuidGenerator.ts │ │ │ │ ├── dependency_injection │ │ │ │ ├── Subscriber.ts │ │ │ │ └── diod.config.ts │ │ │ │ └── event_bus │ │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ │ ├── DomainEventJsonDeserializer.ts │ │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ │ ├── InMemoryEventBus.ts │ │ │ │ └── failover │ │ │ │ └── DomainEventFailover.ts │ │ │ └── shop │ │ │ ├── product_reviews │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductReviewCreator.ts │ │ │ │ └── search_by_product_id │ │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ │ ├── domain │ │ │ │ ├── ProductReview.ts │ │ │ │ ├── ProductReviewComment.ts │ │ │ │ ├── ProductReviewId.ts │ │ │ │ ├── ProductReviewRating.ts │ │ │ │ └── ProductReviewRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductReviewRepository.ts │ │ │ ├── products │ │ │ ├── application │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductFeaturedReview.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRating.ts │ │ │ │ └── ProductRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.ts │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ ├── search │ │ │ │ └── UserSearcher.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.ts │ │ │ ├── domain │ │ │ ├── User.ts │ │ │ ├── UserArchivedDomainEvent.ts │ │ │ ├── UserDoesNotExist.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ │ ├── UserFinder.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ │ ├── domain │ │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ │ ├── EmailIdMother.ts │ │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── MockEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ │ ├── domain │ │ │ │ └── RetentionUserMother.ts │ │ │ │ └── infrastructure │ │ │ │ └── MockRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── EmailAddressMother.ts │ │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ │ ├── MockEventBus.ts │ │ │ │ └── MockUuidGenerator.ts │ │ │ └── shop │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.test.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserArchivedDomainEventMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ └── MockUserRepository.ts │ └── tsconfig.json └── 3-implement_retry_dead_letter │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-test_messages.sh │ ├── Makefile │ ├── README.md │ ├── databases │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ └── http │ │ ├── seller_backoffice │ │ ├── product-GET.http │ │ ├── product-PUT.http │ │ └── products-GET.http │ │ ├── shared │ │ └── event_bus-POST.http │ │ └── shop │ │ ├── product-GET.http │ │ ├── product_review-PUT.http │ │ ├── product_reviews-GET.http │ │ ├── products-GET.http │ │ ├── user-GET.http │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ └── codely.svg │ ├── src │ ├── app │ │ ├── api │ │ │ ├── seller_backoffice │ │ │ │ └── products │ │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ ├── shared │ │ │ │ └── event_bus │ │ │ │ │ └── route.ts │ │ │ └── shop │ │ │ │ ├── product_reviews │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ ├── products │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [id] │ │ │ │ └── route.ts │ │ └── scripts │ │ │ ├── configure-eventbridge_sqs.ts │ │ │ └── consume-sqs.ts │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── send_welcome_email │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ ├── domain │ │ │ │ ├── Email.ts │ │ │ │ ├── EmailBody.ts │ │ │ │ ├── EmailId.ts │ │ │ │ ├── EmailSender.ts │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ └── infrastructure │ │ │ │ └── FakeEmailSender.ts │ │ └── user │ │ │ ├── application │ │ │ └── update_last_activity_date │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ ├── domain │ │ │ ├── RetentionUser.ts │ │ │ └── RetentionUserRepository.ts │ │ │ └── infrastructure │ │ │ └── FakeRetentionUserRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── AggregateRoot.ts │ │ │ ├── Collection.ts │ │ │ ├── EmailAddress.ts │ │ │ ├── Identifier.ts │ │ │ ├── Money.ts │ │ │ ├── StringValueObject.ts │ │ │ ├── UuidGenerator.ts │ │ │ └── event │ │ │ │ ├── DomainEvent.ts │ │ │ │ ├── DomainEventClass.ts │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ │ ├── MariaDBConnection.ts │ │ │ ├── OfficialUuidGenerator.ts │ │ │ ├── dependency_injection │ │ │ ├── Subscriber.ts │ │ │ └── diod.config.ts │ │ │ └── event_bus │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ ├── DomainEventJsonDeserializer.ts │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ ├── InMemoryEventBus.ts │ │ │ └── failover │ │ │ └── DomainEventFailover.ts │ │ └── shop │ │ ├── product_reviews │ │ ├── application │ │ │ ├── create │ │ │ │ └── ProductReviewCreator.ts │ │ │ └── search_by_product_id │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ ├── domain │ │ │ ├── ProductReview.ts │ │ │ ├── ProductReviewComment.ts │ │ │ ├── ProductReviewId.ts │ │ │ ├── ProductReviewRating.ts │ │ │ └── ProductReviewRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductReviewRepository.ts │ │ ├── products │ │ ├── application │ │ │ ├── search │ │ │ │ └── ProductSearcher.ts │ │ │ └── search_all │ │ │ │ └── AllProductsSearcher.ts │ │ ├── domain │ │ │ ├── Product.ts │ │ │ ├── ProductFeaturedReview.ts │ │ │ ├── ProductId.ts │ │ │ ├── ProductImageUrl.ts │ │ │ ├── ProductImageUrls.ts │ │ │ ├── ProductName.ts │ │ │ ├── ProductRating.ts │ │ │ └── ProductRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductRepository.ts │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.ts │ │ ├── find │ │ │ └── UserFinder.ts │ │ ├── registrar │ │ │ └── UserRegistrar.ts │ │ ├── search │ │ │ └── UserSearcher.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.ts │ │ ├── domain │ │ ├── User.ts │ │ ├── UserArchivedDomainEvent.ts │ │ ├── UserDoesNotExist.ts │ │ ├── UserDomainEvent.ts │ │ ├── UserEmail.ts │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ ├── UserFinder.ts │ │ ├── UserId.ts │ │ ├── UserName.ts │ │ ├── UserProfilePicture.ts │ │ ├── UserRegisteredDomainEvent.ts │ │ ├── UserRepository.ts │ │ └── UserStatus.ts │ │ └── infrastructure │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ ├── domain │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ ├── EmailIdMother.ts │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ └── infrastructure │ │ │ │ └── MockEmailSender.ts │ │ └── user │ │ │ ├── application │ │ │ └── update_last_activity_date │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ ├── domain │ │ │ └── RetentionUserMother.ts │ │ │ └── infrastructure │ │ │ └── MockRetentionUserRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── EmailAddressMother.ts │ │ │ └── EnumMother.ts │ │ └── infrastructure │ │ │ ├── MockEventBus.ts │ │ │ └── MockUuidGenerator.ts │ │ └── shop │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.test.ts │ │ ├── registrar │ │ │ └── UserRegistrar.test.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.test.ts │ │ ├── domain │ │ ├── DateMother.ts │ │ ├── UserArchivedDomainEventMother.ts │ │ ├── UserEmailMother.ts │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ ├── UserIdMother.ts │ │ ├── UserMother.ts │ │ ├── UserNameMother.ts │ │ ├── UserProfilePictureMother.ts │ │ └── UserRegisteredDomainEventMother.ts │ │ └── infrastructure │ │ └── MockUserRepository.ts │ └── tsconfig.json ├── 06-to_production ├── 1-from_localstack_to_aws │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-test_messages.sh │ ├── Makefile │ ├── README.md │ ├── databases │ │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ │ └── http │ │ │ ├── seller_backoffice │ │ │ ├── product-GET.http │ │ │ ├── product-PUT.http │ │ │ └── products-GET.http │ │ │ ├── shared │ │ │ └── event_bus-POST.http │ │ │ └── shop │ │ │ ├── product-GET.http │ │ │ ├── product_review-PUT.http │ │ │ ├── product_reviews-GET.http │ │ │ ├── products-GET.http │ │ │ ├── user-GET.http │ │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ └── codely.svg │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ ├── seller_backoffice │ │ │ │ │ └── products │ │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ └── route.ts │ │ │ │ ├── shared │ │ │ │ │ └── event_bus │ │ │ │ │ │ └── route.ts │ │ │ │ └── shop │ │ │ │ │ ├── product_reviews │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ ├── products │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ └── scripts │ │ │ │ ├── configure-eventbridge_sqs.ts │ │ │ │ └── consume-sqs.ts │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── send_welcome_email │ │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ │ ├── domain │ │ │ │ │ ├── Email.ts │ │ │ │ │ ├── EmailBody.ts │ │ │ │ │ ├── EmailId.ts │ │ │ │ │ ├── EmailSender.ts │ │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── FakeEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ │ ├── domain │ │ │ │ ├── RetentionUser.ts │ │ │ │ └── RetentionUserRepository.ts │ │ │ │ └── infrastructure │ │ │ │ └── FakeRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── AggregateRoot.ts │ │ │ │ ├── Collection.ts │ │ │ │ ├── EmailAddress.ts │ │ │ │ ├── Identifier.ts │ │ │ │ ├── Money.ts │ │ │ │ ├── StringValueObject.ts │ │ │ │ ├── UuidGenerator.ts │ │ │ │ └── event │ │ │ │ │ ├── DomainEvent.ts │ │ │ │ │ ├── DomainEventClass.ts │ │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ │ ├── MariaDBConnection.ts │ │ │ │ ├── OfficialUuidGenerator.ts │ │ │ │ ├── dependency_injection │ │ │ │ ├── Subscriber.ts │ │ │ │ └── diod.config.ts │ │ │ │ └── event_bus │ │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ │ ├── DomainEventJsonDeserializer.ts │ │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ │ ├── InMemoryEventBus.ts │ │ │ │ └── failover │ │ │ │ └── DomainEventFailover.ts │ │ │ └── shop │ │ │ ├── product_reviews │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductReviewCreator.ts │ │ │ │ └── search_by_product_id │ │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ │ ├── domain │ │ │ │ ├── ProductReview.ts │ │ │ │ ├── ProductReviewComment.ts │ │ │ │ ├── ProductReviewId.ts │ │ │ │ ├── ProductReviewRating.ts │ │ │ │ └── ProductReviewRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductReviewRepository.ts │ │ │ ├── products │ │ │ ├── application │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductFeaturedReview.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRating.ts │ │ │ │ └── ProductRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.ts │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ ├── search │ │ │ │ └── UserSearcher.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.ts │ │ │ ├── domain │ │ │ ├── User.ts │ │ │ ├── UserArchivedDomainEvent.ts │ │ │ ├── UserDoesNotExist.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ │ ├── UserFinder.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ │ ├── domain │ │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ │ ├── EmailIdMother.ts │ │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── MockEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ │ ├── domain │ │ │ │ └── RetentionUserMother.ts │ │ │ │ └── infrastructure │ │ │ │ └── MockRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── EmailAddressMother.ts │ │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ │ ├── MockEventBus.ts │ │ │ │ └── MockUuidGenerator.ts │ │ │ └── shop │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.test.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserArchivedDomainEventMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ └── MockUserRepository.ts │ └── tsconfig.json ├── 2-generate_terraform_files │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-test_messages.sh │ ├── Makefile │ ├── README.md │ ├── databases │ │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ │ └── http │ │ │ ├── seller_backoffice │ │ │ ├── product-GET.http │ │ │ ├── product-PUT.http │ │ │ └── products-GET.http │ │ │ ├── shared │ │ │ └── event_bus-POST.http │ │ │ └── shop │ │ │ ├── product-GET.http │ │ │ ├── product_review-PUT.http │ │ │ ├── product_reviews-GET.http │ │ │ ├── products-GET.http │ │ │ ├── user-GET.http │ │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ └── codely.svg │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ ├── seller_backoffice │ │ │ │ │ └── products │ │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ └── route.ts │ │ │ │ ├── shared │ │ │ │ │ └── event_bus │ │ │ │ │ │ └── route.ts │ │ │ │ └── shop │ │ │ │ │ ├── product_reviews │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ ├── products │ │ │ │ │ ├── [id] │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ └── scripts │ │ │ │ ├── configure-eventbridge_sqs.ts │ │ │ │ ├── consume-sqs.ts │ │ │ │ └── generate-eventbridge_sqs-terraform_files.ts │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── send_welcome_email │ │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ │ ├── domain │ │ │ │ │ ├── Email.ts │ │ │ │ │ ├── EmailBody.ts │ │ │ │ │ ├── EmailId.ts │ │ │ │ │ ├── EmailSender.ts │ │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── FakeEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ │ ├── domain │ │ │ │ ├── RetentionUser.ts │ │ │ │ └── RetentionUserRepository.ts │ │ │ │ └── infrastructure │ │ │ │ └── FakeRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── AggregateRoot.ts │ │ │ │ ├── Collection.ts │ │ │ │ ├── EmailAddress.ts │ │ │ │ ├── Identifier.ts │ │ │ │ ├── Money.ts │ │ │ │ ├── StringValueObject.ts │ │ │ │ ├── UuidGenerator.ts │ │ │ │ └── event │ │ │ │ │ ├── DomainEvent.ts │ │ │ │ │ ├── DomainEventClass.ts │ │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ │ ├── MariaDBConnection.ts │ │ │ │ ├── OfficialUuidGenerator.ts │ │ │ │ ├── dependency_injection │ │ │ │ ├── Subscriber.ts │ │ │ │ └── diod.config.ts │ │ │ │ └── event_bus │ │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ │ ├── DomainEventJsonDeserializer.ts │ │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ │ ├── InMemoryEventBus.ts │ │ │ │ └── failover │ │ │ │ └── DomainEventFailover.ts │ │ │ └── shop │ │ │ ├── product_reviews │ │ │ ├── application │ │ │ │ ├── create │ │ │ │ │ └── ProductReviewCreator.ts │ │ │ │ └── search_by_product_id │ │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ │ ├── domain │ │ │ │ ├── ProductReview.ts │ │ │ │ ├── ProductReviewComment.ts │ │ │ │ ├── ProductReviewId.ts │ │ │ │ ├── ProductReviewRating.ts │ │ │ │ └── ProductReviewRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductReviewRepository.ts │ │ │ ├── products │ │ │ ├── application │ │ │ │ ├── search │ │ │ │ │ └── ProductSearcher.ts │ │ │ │ └── search_all │ │ │ │ │ └── AllProductsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Product.ts │ │ │ │ ├── ProductFeaturedReview.ts │ │ │ │ ├── ProductId.ts │ │ │ │ ├── ProductImageUrl.ts │ │ │ │ ├── ProductImageUrls.ts │ │ │ │ ├── ProductName.ts │ │ │ │ ├── ProductRating.ts │ │ │ │ └── ProductRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlProductRepository.ts │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.ts │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ ├── search │ │ │ │ └── UserSearcher.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.ts │ │ │ ├── domain │ │ │ ├── User.ts │ │ │ ├── UserArchivedDomainEvent.ts │ │ │ ├── UserDoesNotExist.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ │ ├── UserFinder.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ │ └── contexts │ │ │ ├── retention │ │ │ ├── email │ │ │ │ ├── application │ │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ │ ├── domain │ │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ │ ├── EmailIdMother.ts │ │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── MockEmailSender.ts │ │ │ └── user │ │ │ │ ├── application │ │ │ │ └── update_last_activity_date │ │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ │ ├── domain │ │ │ │ └── RetentionUserMother.ts │ │ │ │ └── infrastructure │ │ │ │ └── MockRetentionUserRepository.ts │ │ │ ├── shared │ │ │ ├── domain │ │ │ │ ├── EmailAddressMother.ts │ │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ │ ├── MockEventBus.ts │ │ │ │ └── MockUuidGenerator.ts │ │ │ └── shop │ │ │ └── users │ │ │ ├── application │ │ │ ├── archive │ │ │ │ └── UserArchiver.test.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ └── update_email │ │ │ │ └── UserEmailUpdater.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserArchivedDomainEventMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ └── MockUserRepository.ts │ └── tsconfig.json └── 3-schema_registry │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitignore │ ├── 1-test_messages.sh │ ├── Makefile │ ├── README.md │ ├── databases │ └── ecommerce.sql │ ├── docker-compose.yml │ ├── etc │ └── http │ │ ├── seller_backoffice │ │ ├── product-GET.http │ │ ├── product-PUT.http │ │ └── products-GET.http │ │ ├── shared │ │ └── event_bus-POST.http │ │ └── shop │ │ ├── product-GET.http │ │ ├── product_review-PUT.http │ │ ├── product_reviews-GET.http │ │ ├── products-GET.http │ │ ├── user-GET.http │ │ └── user-PUT.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ └── codely.svg │ ├── src │ ├── app │ │ ├── api │ │ │ ├── seller_backoffice │ │ │ │ └── products │ │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ ├── shared │ │ │ │ └── event_bus │ │ │ │ │ └── route.ts │ │ │ └── shop │ │ │ │ ├── product_reviews │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ ├── products │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [id] │ │ │ │ └── route.ts │ │ └── scripts │ │ │ ├── configure-eventbridge_sqs.ts │ │ │ ├── consume-sqs.ts │ │ │ └── generate-eventbridge_sqs-terraform_files.ts │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── send_welcome_email │ │ │ │ │ ├── SendWelcomeEmailOnUserRegistered.ts │ │ │ │ │ └── WelcomeEmailSender.ts │ │ │ ├── domain │ │ │ │ ├── Email.ts │ │ │ │ ├── EmailBody.ts │ │ │ │ ├── EmailId.ts │ │ │ │ ├── EmailSender.ts │ │ │ │ ├── WelcomeEmail.ts │ │ │ │ └── WelcomeEmailSentDomainEvent.ts │ │ │ └── infrastructure │ │ │ │ └── FakeEmailSender.ts │ │ └── user │ │ │ ├── application │ │ │ └── update_last_activity_date │ │ │ │ ├── UpdateLastActivityDateOnUserUpdated.ts │ │ │ │ └── UserLastActivityUpdater.ts │ │ │ ├── domain │ │ │ ├── RetentionUser.ts │ │ │ └── RetentionUserRepository.ts │ │ │ └── infrastructure │ │ │ └── FakeRetentionUserRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── AggregateRoot.ts │ │ │ ├── Collection.ts │ │ │ ├── EmailAddress.ts │ │ │ ├── Identifier.ts │ │ │ ├── Money.ts │ │ │ ├── StringValueObject.ts │ │ │ ├── UuidGenerator.ts │ │ │ └── event │ │ │ │ ├── DomainEvent.ts │ │ │ │ ├── DomainEventClass.ts │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ │ ├── MariaDBConnection.ts │ │ │ ├── OfficialUuidGenerator.ts │ │ │ ├── dependency_injection │ │ │ ├── Subscriber.ts │ │ │ └── diod.config.ts │ │ │ └── event_bus │ │ │ ├── AwsEventBridgeEventBus.ts │ │ │ ├── DomainEventJsonDeserializer.ts │ │ │ ├── DomainEventJsonSerializer.ts │ │ │ ├── InMemoryEventBus.ts │ │ │ └── failover │ │ │ └── DomainEventFailover.ts │ │ └── shop │ │ ├── product_reviews │ │ ├── application │ │ │ ├── create │ │ │ │ └── ProductReviewCreator.ts │ │ │ └── search_by_product_id │ │ │ │ └── ProductReviewsByProductSearcher.ts │ │ ├── domain │ │ │ ├── ProductReview.ts │ │ │ ├── ProductReviewComment.ts │ │ │ ├── ProductReviewId.ts │ │ │ ├── ProductReviewRating.ts │ │ │ └── ProductReviewRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductReviewRepository.ts │ │ ├── products │ │ ├── application │ │ │ ├── search │ │ │ │ └── ProductSearcher.ts │ │ │ └── search_all │ │ │ │ └── AllProductsSearcher.ts │ │ ├── domain │ │ │ ├── Product.ts │ │ │ ├── ProductFeaturedReview.ts │ │ │ ├── ProductId.ts │ │ │ ├── ProductImageUrl.ts │ │ │ ├── ProductImageUrls.ts │ │ │ ├── ProductName.ts │ │ │ ├── ProductRating.ts │ │ │ └── ProductRepository.ts │ │ └── infrastructure │ │ │ └── MySqlProductRepository.ts │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.ts │ │ ├── find │ │ │ └── UserFinder.ts │ │ ├── registrar │ │ │ └── UserRegistrar.ts │ │ ├── search │ │ │ └── UserSearcher.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.ts │ │ ├── domain │ │ ├── User.ts │ │ ├── UserArchivedDomainEvent.ts │ │ ├── UserDoesNotExist.ts │ │ ├── UserDomainEvent.ts │ │ ├── UserEmail.ts │ │ ├── UserEmailUpdatedDomainEvent.ts │ │ ├── UserFinder.ts │ │ ├── UserId.ts │ │ ├── UserName.ts │ │ ├── UserProfilePicture.ts │ │ ├── UserRegisteredDomainEvent.ts │ │ ├── UserRepository.ts │ │ └── UserStatus.ts │ │ └── infrastructure │ │ └── MySqlUserRepository.ts │ ├── tailwind.config.ts │ ├── tests │ └── contexts │ │ ├── retention │ │ ├── email │ │ │ ├── application │ │ │ │ └── SendWelcomeEmailOnUserRegistered.test.ts │ │ │ ├── domain │ │ │ │ ├── EmailBodyMother.ts │ │ │ │ ├── EmailIdMother.ts │ │ │ │ ├── WelcomeEmailMother.ts │ │ │ │ └── WelcomeEmailSentDomainEventMother.ts │ │ │ └── infrastructure │ │ │ │ └── MockEmailSender.ts │ │ └── user │ │ │ ├── application │ │ │ └── update_last_activity_date │ │ │ │ └── UpdateLastActivityDateOnUserUpdated.test.ts │ │ │ ├── domain │ │ │ └── RetentionUserMother.ts │ │ │ └── infrastructure │ │ │ └── MockRetentionUserRepository.ts │ │ ├── shared │ │ ├── domain │ │ │ ├── EmailAddressMother.ts │ │ │ └── EnumMother.ts │ │ └── infrastructure │ │ │ ├── MockEventBus.ts │ │ │ └── MockUuidGenerator.ts │ │ └── shop │ │ └── users │ │ ├── application │ │ ├── archive │ │ │ └── UserArchiver.test.ts │ │ ├── registrar │ │ │ └── UserRegistrar.test.ts │ │ └── update_email │ │ │ └── UserEmailUpdater.test.ts │ │ ├── domain │ │ ├── DateMother.ts │ │ ├── UserArchivedDomainEventMother.ts │ │ ├── UserEmailMother.ts │ │ ├── UserEmailUpdatedDomainEventMother.ts │ │ ├── UserIdMother.ts │ │ ├── UserMother.ts │ │ ├── UserNameMother.ts │ │ ├── UserProfilePictureMother.ts │ │ └── UserRegisteredDomainEventMother.ts │ │ └── infrastructure │ │ └── MockUserRepository.ts │ └── tsconfig.json ├── LICENSE └── README.md /02-publish_messages/1-prepare_localstack/.gitignore: -------------------------------------------------------------------------------- 1 | /volume 2 | -------------------------------------------------------------------------------- /02-publish_messages/1-prepare_localstack/1-configure.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/1-prepare_localstack/1-configure.sh -------------------------------------------------------------------------------- /02-publish_messages/1-prepare_localstack/2-list_queues.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/1-prepare_localstack/2-list_queues.sh -------------------------------------------------------------------------------- /02-publish_messages/1-prepare_localstack/3-publish_message.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/1-prepare_localstack/3-publish_message.sh -------------------------------------------------------------------------------- /02-publish_messages/1-prepare_localstack/4-consume_message.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/1-prepare_localstack/4-consume_message.sh -------------------------------------------------------------------------------- /02-publish_messages/1-prepare_localstack/5-delete_message.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/1-prepare_localstack/5-delete_message.sh -------------------------------------------------------------------------------- /02-publish_messages/1-prepare_localstack/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/1-prepare_localstack/docker-compose.yml -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/.editorconfig -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/.eslintrc.json -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/.gitignore -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/1-configure.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/1-configure.sh -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/README.md -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/databases/ecommerce.sql -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/docker-compose.yml -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/seller_backoffice/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/etc/http/seller_backoffice/product-GET.http -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/seller_backoffice/product-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/etc/http/seller_backoffice/product-PUT.http -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/product_review-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/product_review-PUT.http -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/product_reviews-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/product_reviews-GET.http -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/jest.config.js -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/next.config.js -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/package-lock.json -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/package.json -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/postcss.config.js -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/public/codely.svg -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/product_reviews/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/product_reviews/route.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/products/[id]/route.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/app/api/shop/users/[id]/route.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/retention/email/domain/Email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/retention/email/domain/Email.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/retention/user/application/create/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/UuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/UuidGenerator.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/products/domain/Product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/products/domain/Product.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/User.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserFinder.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserId.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserName.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/src/contexts/shop/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/tailwind.config.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /02-publish_messages/2-publish_event_to_eventbridge/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/2-publish_event_to_eventbridge/tsconfig.json -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/.editorconfig -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/.eslintrc.json -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/.gitignore -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/1-configure.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/1-configure.sh -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/README.md -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/databases/ecommerce.sql -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/docker-compose.yml -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/seller_backoffice/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/etc/http/seller_backoffice/product-GET.http -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/seller_backoffice/product-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/etc/http/seller_backoffice/product-PUT.http -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/shop/product_review-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/etc/http/shop/product_review-PUT.http -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/shop/product_reviews-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/etc/http/shop/product_reviews-GET.http -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/jest.config.js -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/next.config.js -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/package-lock.json -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/package.json -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/postcss.config.js -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/public/codely.svg -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/seller_backoffice/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/seller_backoffice/products/[id]/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/seller_backoffice/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/seller_backoffice/products/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/shared/event_bus/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/shared/event_bus/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/shop/product_reviews/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/shop/product_reviews/[id]/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/shop/product_reviews/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/shop/product_reviews/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/shop/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/shop/products/[id]/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/app/api/shop/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/app/api/shop/users/[id]/route.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/Email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/Email.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/EmailBody.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/EmailBody.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/EmailId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/EmailId.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/EmailSender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/EmailSender.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/WelcomeEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/retention/email/domain/WelcomeEmail.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/retention/user/application/create/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/retention/user/domain/RetentionUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/retention/user/domain/RetentionUser.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/UuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/UuidGenerator.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/event/DomainEventName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/event/DomainEventName.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/Product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/Product.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductId.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductImageUrl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductImageUrl.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductImageUrls.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductImageUrls.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductName.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductRating.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/products/domain/ProductRating.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/User.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserDoesNotExist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserDoesNotExist.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserFinder.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserId.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserName.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/src/contexts/shop/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tailwind.config.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/DateMother.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserMother.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tests/contexts/shop/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /02-publish_messages/3-publication_fallback/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/02-publish_messages/3-publication_fallback/tsconfig.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/.editorconfig -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/.eslintrc.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/.gitignore -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/1-configure.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/1-configure.sh -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/2-test_message.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/2-test_message.sh -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/README.md -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/databases/ecommerce.sql -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/docker-compose.yml -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/jest.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/next.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/package-lock.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/package.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/postcss.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/public/codely.svg -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/src/contexts/retention/user/application/create/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/tailwind.config.ts -------------------------------------------------------------------------------- /04-generate_queues_automatically/1-configure_programatically/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/1-configure_programatically/tsconfig.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/.editorconfig -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/.eslintrc.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/.gitignore -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/1-test_messages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/1-test_messages.sh -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/README.md -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/databases/ecommerce.sql -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/docker-compose.yml -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/jest.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/next.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/package-lock.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/package.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/postcss.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/public/codely.svg -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/tailwind.config.ts -------------------------------------------------------------------------------- /04-generate_queues_automatically/2-generate_queues_dynamically/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/2-generate_queues_dynamically/tsconfig.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/.editorconfig -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/.eslintrc.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/.gitignore -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/1-test_messages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/1-test_messages.sh -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/README.md -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/databases/ecommerce.sql -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/docker-compose.yml -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/jest.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/next.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/package-lock.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/package.json -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/postcss.config.js -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/public/codely.svg -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/tailwind.config.ts -------------------------------------------------------------------------------- /04-generate_queues_automatically/3-queues_with_wildcard_binding/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/04-generate_queues_automatically/3-queues_with_wildcard_binding/tsconfig.json -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/.editorconfig -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/.eslintrc.json -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/.gitignore -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/1-test_messages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/1-test_messages.sh -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/README.md -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/databases/ecommerce.sql -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/docker-compose.yml -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/seller_backoffice/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/etc/http/seller_backoffice/product-GET.http -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/seller_backoffice/product-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/etc/http/seller_backoffice/product-PUT.http -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/shop/product_review-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/etc/http/shop/product_review-PUT.http -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/shop/product_reviews-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/etc/http/shop/product_reviews-GET.http -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/jest.config.js -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/next.config.js -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/package-lock.json -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/package.json -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/postcss.config.js -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/public/codely.svg -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/seller_backoffice/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/seller_backoffice/products/[id]/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/seller_backoffice/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/seller_backoffice/products/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/shared/event_bus/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/shared/event_bus/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/shop/product_reviews/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/shop/product_reviews/[id]/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/shop/product_reviews/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/shop/product_reviews/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/shop/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/shop/products/[id]/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/api/shop/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/api/shop/users/[id]/route.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/scripts/configure-eventbridge_sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/scripts/configure-eventbridge_sqs.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/app/scripts/consume-sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/app/scripts/consume-sqs.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/retention/email/domain/Email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/retention/email/domain/Email.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/retention/email/domain/EmailBody.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/retention/email/domain/EmailBody.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/retention/email/domain/EmailId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/retention/email/domain/EmailId.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/retention/email/domain/EmailSender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/retention/email/domain/EmailSender.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/retention/email/domain/WelcomeEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/retention/email/domain/WelcomeEmail.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/retention/user/domain/RetentionUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/retention/user/domain/RetentionUser.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/retention/user/domain/RetentionUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/retention/user/domain/RetentionUserRepository.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/UuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/UuidGenerator.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/infrastructure/MariaDBConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/infrastructure/MariaDBConnection.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shared/infrastructure/OfficialUuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shared/infrastructure/OfficialUuidGenerator.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/product_reviews/domain/ProductReview.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/product_reviews/domain/ProductReview.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/product_reviews/domain/ProductReviewId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/product_reviews/domain/ProductReviewId.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/Product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/Product.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductFeaturedReview.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductFeaturedReview.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductId.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductImageUrl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductImageUrl.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductImageUrls.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductImageUrls.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductName.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductRating.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductRating.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/products/domain/ProductRepository.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/application/archive/UserArchiver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/application/archive/UserArchiver.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/application/search/UserSearcher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/application/search/UserSearcher.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/User.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserArchivedDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserArchivedDomainEvent.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserDoesNotExist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserDoesNotExist.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserEmailUpdatedDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserEmailUpdatedDomainEvent.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserFinder.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserId.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserName.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/src/contexts/shop/users/infrastructure/MySqlUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/src/contexts/shop/users/infrastructure/MySqlUserRepository.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tailwind.config.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/retention/email/domain/EmailBodyMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/retention/email/domain/EmailBodyMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/retention/email/domain/EmailIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/retention/email/domain/EmailIdMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/retention/email/domain/WelcomeEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/retention/email/domain/WelcomeEmailMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/retention/user/domain/RetentionUserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/retention/user/domain/RetentionUserMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shared/infrastructure/MockUuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shared/infrastructure/MockUuidGenerator.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/DateMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserProfilePictureMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tests/contexts/shop/users/domain/UserProfilePictureMother.ts -------------------------------------------------------------------------------- /05-add_resilience/1-consume_events/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/1-consume_events/tsconfig.json -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/.editorconfig -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/.eslintrc.json -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/.gitignore -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/1-test_messages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/1-test_messages.sh -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/README.md -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/databases/ecommerce.sql -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/docker-compose.yml -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/seller_backoffice/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/etc/http/seller_backoffice/product-GET.http -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/seller_backoffice/product-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/etc/http/seller_backoffice/product-PUT.http -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/product_review-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/product_review-PUT.http -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/product_reviews-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/product_reviews-GET.http -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/jest.config.js -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/next.config.js -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/package-lock.json -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/package.json -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/postcss.config.js -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/public/codely.svg -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/api/seller_backoffice/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/api/seller_backoffice/products/route.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/api/shared/event_bus/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/api/shared/event_bus/route.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/product_reviews/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/product_reviews/[id]/route.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/product_reviews/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/product_reviews/route.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/products/[id]/route.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/api/shop/users/[id]/route.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/scripts/configure-eventbridge_sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/scripts/configure-eventbridge_sqs.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/app/scripts/consume-sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/app/scripts/consume-sqs.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/retention/email/domain/Email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/retention/email/domain/Email.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/retention/email/domain/EmailBody.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/retention/email/domain/EmailBody.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/retention/email/domain/EmailId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/retention/email/domain/EmailId.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/UuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/UuidGenerator.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/products/domain/Product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/products/domain/Product.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/products/domain/ProductId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/products/domain/ProductId.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/products/domain/ProductName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/products/domain/ProductName.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/User.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserFinder.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserId.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserName.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/src/contexts/shop/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/tailwind.config.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shop/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shop/users/domain/DateMother.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shop/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shop/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shop/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/tests/contexts/shop/users/domain/UserMother.ts -------------------------------------------------------------------------------- /05-add_resilience/3-implement_retry_dead_letter/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/05-add_resilience/3-implement_retry_dead_letter/tsconfig.json -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/.editorconfig -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/.eslintrc.json -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/.gitignore -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/1-test_messages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/1-test_messages.sh -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/README.md -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/databases/ecommerce.sql -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/docker-compose.yml -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/seller_backoffice/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/etc/http/seller_backoffice/product-GET.http -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/seller_backoffice/product-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/etc/http/seller_backoffice/product-PUT.http -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/shop/product_review-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/etc/http/shop/product_review-PUT.http -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/shop/product_reviews-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/etc/http/shop/product_reviews-GET.http -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/jest.config.js -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/next.config.js -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/package-lock.json -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/package.json -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/postcss.config.js -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/public/codely.svg -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/seller_backoffice/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/seller_backoffice/products/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/seller_backoffice/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/seller_backoffice/products/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/shared/event_bus/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/shared/event_bus/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/shop/product_reviews/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/shop/product_reviews/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/shop/product_reviews/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/shop/product_reviews/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/shop/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/shop/products/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/api/shop/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/api/shop/users/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/scripts/configure-eventbridge_sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/scripts/configure-eventbridge_sqs.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/app/scripts/consume-sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/app/scripts/consume-sqs.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/Email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/Email.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/EmailBody.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/EmailBody.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/EmailId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/EmailId.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/EmailSender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/EmailSender.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/WelcomeEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/retention/email/domain/WelcomeEmail.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/retention/user/domain/RetentionUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/retention/user/domain/RetentionUser.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/UuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/UuidGenerator.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/Product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/Product.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductId.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductImageUrl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductImageUrl.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductImageUrls.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductImageUrls.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductName.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductRating.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductRating.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/products/domain/ProductRepository.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/User.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserDoesNotExist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserDoesNotExist.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserFinder.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserId.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserName.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/src/contexts/shop/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tailwind.config.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/retention/email/domain/EmailIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/retention/email/domain/EmailIdMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/DateMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tests/contexts/shop/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /06-to_production/1-from_localstack_to_aws/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/1-from_localstack_to_aws/tsconfig.json -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/.editorconfig -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/.eslintrc.json -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/.gitignore -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/1-test_messages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/1-test_messages.sh -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/README.md -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/databases/ecommerce.sql -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/docker-compose.yml -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/seller_backoffice/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/etc/http/seller_backoffice/product-GET.http -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/seller_backoffice/product-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/etc/http/seller_backoffice/product-PUT.http -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/shop/product_review-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/etc/http/shop/product_review-PUT.http -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/shop/product_reviews-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/etc/http/shop/product_reviews-GET.http -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/jest.config.js -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/next.config.js -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/package-lock.json -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/package.json -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/postcss.config.js -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/public/codely.svg -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/seller_backoffice/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/seller_backoffice/products/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/seller_backoffice/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/seller_backoffice/products/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/shared/event_bus/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/shared/event_bus/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/shop/product_reviews/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/shop/product_reviews/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/shop/product_reviews/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/shop/product_reviews/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/shop/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/shop/products/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/api/shop/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/api/shop/users/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/scripts/configure-eventbridge_sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/scripts/configure-eventbridge_sqs.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/app/scripts/consume-sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/app/scripts/consume-sqs.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/Email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/Email.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/EmailBody.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/EmailBody.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/EmailId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/EmailId.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/EmailSender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/EmailSender.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/WelcomeEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/retention/email/domain/WelcomeEmail.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/retention/user/domain/RetentionUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/retention/user/domain/RetentionUser.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/UuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/UuidGenerator.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/Product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/Product.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductId.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductImageUrl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductImageUrl.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductName.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductRating.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/products/domain/ProductRating.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/User.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserDoesNotExist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserDoesNotExist.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserFinder.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserId.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserName.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/src/contexts/shop/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tailwind.config.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/DateMother.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserMother.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tests/contexts/shop/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /06-to_production/2-generate_terraform_files/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/2-generate_terraform_files/tsconfig.json -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/.editorconfig -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/.eslintrc.json -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/.gitignore -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/1-test_messages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/1-test_messages.sh -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/Makefile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/README.md -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/databases/ecommerce.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/databases/ecommerce.sql -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/docker-compose.yml -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/seller_backoffice/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/etc/http/seller_backoffice/product-GET.http -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/seller_backoffice/product-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/etc/http/seller_backoffice/product-PUT.http -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/seller_backoffice/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/seller_backoffice/products 2 | -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/shared/event_bus-POST.http: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/api/shared/event_bus 2 | Content-Type: application/json 3 | -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/shop/product-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/etc/http/shop/product-GET.http -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/shop/product_review-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/etc/http/shop/product_review-PUT.http -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/shop/product_reviews-GET.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/etc/http/shop/product_reviews-GET.http -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/shop/products-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/products 2 | -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/shop/user-GET.http: -------------------------------------------------------------------------------- 1 | GET http://localhost:3000/api/shop/users/1ec0b8ee-dbdc-48f6-ae5a-bfb99bee5e27 2 | -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/etc/http/shop/user-PUT.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/etc/http/shop/user-PUT.http -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/jest.config.js -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/next.config.js -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/package-lock.json -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/package.json -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/postcss.config.js -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/public/codely.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/public/codely.svg -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/seller_backoffice/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/seller_backoffice/products/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/seller_backoffice/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/seller_backoffice/products/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/shared/event_bus/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/shared/event_bus/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/shop/product_reviews/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/shop/product_reviews/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/shop/product_reviews/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/shop/product_reviews/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/shop/products/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/shop/products/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/shop/products/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/shop/products/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/api/shop/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/api/shop/users/[id]/route.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/scripts/configure-eventbridge_sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/scripts/configure-eventbridge_sqs.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/scripts/consume-sqs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/scripts/consume-sqs.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/app/scripts/generate-eventbridge_sqs-terraform_files.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/app/scripts/generate-eventbridge_sqs-terraform_files.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/retention/email/domain/Email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/retention/email/domain/Email.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/retention/email/domain/EmailBody.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/retention/email/domain/EmailBody.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/retention/email/domain/EmailId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/retention/email/domain/EmailId.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/retention/email/domain/EmailSender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/retention/email/domain/EmailSender.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/retention/email/domain/WelcomeEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/retention/email/domain/WelcomeEmail.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/retention/user/domain/RetentionUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/retention/user/domain/RetentionUser.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/retention/user/domain/RetentionUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/retention/user/domain/RetentionUserRepository.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/Collection.ts: -------------------------------------------------------------------------------- 1 | export abstract class Collection { 2 | constructor(public readonly value: T[]) {} 3 | } 4 | -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/Money.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/Money.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/UuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/UuidGenerator.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/infrastructure/MariaDBConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/infrastructure/MariaDBConnection.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shared/infrastructure/OfficialUuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shared/infrastructure/OfficialUuidGenerator.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/product_reviews/domain/ProductReview.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/product_reviews/domain/ProductReview.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/product_reviews/domain/ProductReviewId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/product_reviews/domain/ProductReviewId.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/Product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/Product.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductFeaturedReview.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductFeaturedReview.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductId.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductImageUrl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductImageUrl.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductImageUrls.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductImageUrls.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductName.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductRating.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductRating.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/products/domain/ProductRepository.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/application/archive/UserArchiver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/application/archive/UserArchiver.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/application/search/UserSearcher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/application/search/UserSearcher.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/User.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserArchivedDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserArchivedDomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserDoesNotExist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserDoesNotExist.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserEmailUpdatedDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserEmailUpdatedDomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserFinder.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserId.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserName.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/src/contexts/shop/users/infrastructure/MySqlUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/src/contexts/shop/users/infrastructure/MySqlUserRepository.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tailwind.config.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/retention/email/domain/EmailBodyMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/retention/email/domain/EmailBodyMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/retention/email/domain/EmailIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/retention/email/domain/EmailIdMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/retention/email/domain/WelcomeEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/retention/email/domain/WelcomeEmailMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/retention/user/domain/RetentionUserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/retention/user/domain/RetentionUserMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shared/infrastructure/MockUuidGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shared/infrastructure/MockUuidGenerator.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shop/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shop/users/domain/DateMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserProfilePictureMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tests/contexts/shop/users/domain/UserProfilePictureMother.ts -------------------------------------------------------------------------------- /06-to_production/3-schema_registry/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/06-to_production/3-schema_registry/tsconfig.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/infrastructure_design-eventbus-aws-course/HEAD/README.md --------------------------------------------------------------------------------