EventualShop
A state-of-the-art distributed system using Reactive DDD as uncertainty modeling, Event Storming as subdomain decomposition, Event Sourcing as an eventual persistence mechanism, CQRS, Async Projections, Microservices for individual deployable units, Event-driven Architecture for efficient integration, and Clean Architecture as domain-centric design
File Explorer
Download Latest Version (.zip)- add-ha-message-queue.png
- aggregate.png
- applyTo_event-sourcing.png
- authentication.jpg
- BoundedContext.jpg
- broker_topology_eda.png
- choreography.png
- CleanArchitecture.jpg
- CleanArchitectureDiagram.png
- cqrs-eventsourcing-diagram.png
- cqrs-eventsourcing-flow.png
- cqrs.jpg
- cqrs.png
- CQRS_ES_Capability_Map.jpeg
- eda.png
- event-sourcing-overview.png
- event-sourcing-state-transition.png
- event-sourcing.png
- event-store.png
- event-storming-wip.jpg
- event-storming.jpg
- EventSourcing_EDA.jpeg
- eventsourcingrequestflow.png
- from-eventstorming-to-eventsourcing.png
- logo.png
- messaging_context_mapping.png
- new_logo.png
- orchestration.png
- outbox.jpg
- projections.svg
- reactive-system.jpg
- reactive_process.jpg
- Saga.png
- snapshot.png
- solution_architecture_v1.png
- solution_architecture_v2.png
- store-event.png
- store-snapshot.png
- stream_snapshot.png
- task_based_ui.png
- Untitled Diagram.drawio
- bug_report.md
- custom.md
- feature_request.md
- _build.yaml
- _quality.yaml
- _security.yaml
- _test.yaml
- _workflow.yaml
- account-command.yaml
- account-query.yaml
- catalog-command.yaml
- catalog-query.yaml
- communication-command.yaml
- communication-query.yaml
- identity-command.yaml
- identity-query.yaml
- order-command.yaml
- order-query.yaml
- payment-command.yaml
- payment-query.yaml
- shopping-cart-command.yaml
- shopping-cart-query.yaml
- warehouse-command.yaml
- warehouse-query.yaml
- CleanWorkflows.ps1
- dependabot.yml
- pull_request_template.md
- launch.json
- tasks.json
- ICommand.cs
- IEvent.cs
- IMessage.cs
- IQuery.cs
- Message.cs
- IPagedResult.cs
- Page.cs
- Paging.cs
- BusinessValidationResult.cs
- ContractValidationResult.cs
- ValidationResult.cs
- Abstractions.proto
- IProjection.cs
- AddressValidator.cs
- CreditCardValidator.cs
- DebitCardValidator.cs
- MoneyValidator.cs
- PayPalValidator.cs
- ProductValidator.cs
- ProfileValidator.cs
- ShoppingCartItemValidator.cs
- Dto.cs
- Gender.cs
- DateOnlyJsonConverter.cs
- DateOnlyTextJsonConverter.cs
- ExpirationDateOnlyBsonSerializer.cs
- ExpirationDateOnlyJsonConverter.cs
- TypeNameHandlingConverter.cs
- Account.proto
- Command.cs
- DomainEvent.cs
- Projection.cs
- Query.cs
- ActivateCatalogValidator.cs
- AddCatalogItemValidator.cs
- CatalogActivatedValidator.cs
- CatalogCreatedValidator.cs
- CatalogItemAddedValidator.cs
- CreateCatalogValidator.cs
- Catalog.proto
- Command.cs
- DomainEvent.cs
- Projection.cs
- Query.cs
- Command.cs
- Communication.proto
- DomainEvent.cs
- Projection.cs
- Query.cs
- ConfirmEmailValidator.cs
- RegisterUserValidator.cs
- Command.cs
- DelayedEvent.cs
- DomainEvent.cs
- Identity.proto
- Projection.cs
- Query.cs
- Command.cs
- DomainEvent.cs
- Order.proto
- Projection.cs
- Query.cs
- Command.cs
- DomainEvent.cs
- Payment.proto
- Projection.cs
- Query.cs
- AddBillingAddressValidator.cs
- AddCartItemValidator.cs
- AddShippingAddressValidator.cs
- CartItemRemovedValidator.cs
- CheckoutCartValidator.cs
- CreateCartValidator.cs
- RemoveCartItemValidator.cs
- ShippingAddressAddedValidator.cs
- Command.cs
- DomainEvent.cs
- NotificationEvent.cs
- Projection.cs
- Query.cs
- ShoppingCart.proto
- SummaryEvent.cs
- CreateInventoryValidator.cs
- ReceiveInventoryItemValidator.cs
- Command.cs
- DomainEvent.cs
- Projection.cs
- Query.cs
- Warehouse.proto
- Contracts.csproj
- IEventBusGateway.cs
- IEventStoreGateway.cs
- IInteractor.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- ApplicationService.cs
- IApplicationService.cs
- AddBillingAddressInteractor.cs
- AddShippingAddressInteractor.cs
- DeleteAccountInteractor.cs
- CreateAccountWhenUserRegisteredInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- Account.cs
- AccountValidator.cs
- Address.cs
- AddressValidator.cs
- BillingAddress.cs
- ShippingAddress.cs
- Profile.cs
- ProfileValidator.cs
- AccountStatus.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- Consumer.cs
- AddBillingAddressConsumer.cs
- AddShippingAddressConsumer.cs
- DeleteAccountConsumer.cs
- CreateAccountWhenUserRegisteredConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IJwtTokenGenerator.cs
- IPasswordHasher.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectAccountDetailsWhenAccountChangedInteractor.cs
- ProjectBillingAddressListItemWhenAccountChangedInteractor.cs
- ProjectShippingAddressListItemWhenAccountChangedInteractor.cs
- GetAccountInteractor.cs
- ListAccountsInteractor.cs
- ListShippingAddressesInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- AccountGrpcService.cs
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- GrpcService.csproj
- Program.cs
- Consumer.cs
- ProjectAccountDetailsWhenAccountChangedInteractor.cs
- ProjectBillingAddressListItemWhenAccountChangedConsumer.cs
- ProjectShippingAddressListItemWhenAccountChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- IEventBusGateway.cs
- IEventStoreGateway.cs
- IInteractor.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- ApplicationService.cs
- IApplicationService.cs
- ActivateCatalogInteractor.cs
- AddCatalogItemInteractor.cs
- ChangeCatalogDescriptionInteractor.cs
- ChangeCatalogTitleInteractor.cs
- CreateCatalogInteractor.cs
- DeactivateCatalogInteractor.cs
- DeleteCatalogInteractor.cs
- RemoveCatalogItemInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- Catalog.cs
- CatalogValidator.cs
- CatalogItem.cs
- CatalogItemValidator.cs
- Product.cs
- ProductValidator.cs
- Currency.cs
- Money.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- UnitOfWork.cs
- Consumer.cs
- ActivateCatalogConsumer.cs
- AddCatalogItemConsumer.cs
- ChangeCatalogDescriptionConsumer.cs
- ChangeCatalogTitleConsumer.cs
- CreateCatalogConsumer.cs
- DeactivateCatalogConsumer.cs
- DeleteCatalogConsumer.cs
- RemoveCatalogItemConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectCatalogGridItemWhenCatalogChangedInteractor.cs
- ProjectCatalogItemCardWhenCatalogChangedInteractor.cs
- ProjectCatalogItemDetailsWhenCatalogChangedInteractor.cs
- ProjectCatalogItemListItemWhenCatalogChangedInteractor.cs
- GetCatalogItemDetailsInteractor.cs
- ListCatalogItemsCardsInteractor.cs
- ListCatalogItemsListItemsInteractor.cs
- ListCatalogsGridItemsInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- CatalogGrpcService.cs
- Dockerfile
- GrpcService.csproj
- Program.cs
- Consumer.cs
- ProjectCatalogGridItemWhenCatalogChangedConsumer.cs
- ProjectCatalogItemCardWhenCatalogChangedConsumer.cs
- ProjectCatalogItemDetailsWhenCatalogChangedConsumer.cs
- ProjectCatalogItemListItemWhenCatalogChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- IEmailGateway.cs
- IEventBusGateway.cs
- IEventStoreGateway.cs
- INotificationGateway.cs
- INotificationService.cs
- NotificationService.cs
- IInteractor.cs
- ILazy.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- EmailResource.Designer.cs
- EmailResource.resx
- ApplicationService.cs
- IApplicationService.cs
- RequestNotificationWhenUserRegisteredInteractor.cs
- SendNotificationWhenNotificationRequestedInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- Notification.cs
- NotificationValidator.cs
- NotificationMethod.cs
- NotificationMethodValidator.cs
- NotificationMethodStatus.cs
- NotificationStatus.cs
- Email.cs
- INotificationOption.cs
- PushMobile.cs
- PushWeb.cs
- Sms.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- UnitOfWork.cs
- Consumer.cs
- RequestNotificationWhenUserRegisteredConsumer.cs
- SendNotificationWhenNotificationRequestedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- ServiceCollectionExtensions.cs
- SmtpOptions.cs
- LazyFactory.cs
- EmailGateway.cs
- Infrastructure.SMTP.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectNotificationDetailsWhenNotificationChangedInteractor.cs
- ListNotificationsDetailsInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- CommunicationGrpcService.cs
- Dockerfile
- GrpcService.csproj
- Program.cs
- Consumer.cs
- ProjectNotificationDetailsWhenNotificationChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- IEventBusGateway.cs
- IEventStoreGateway.cs
- IInteractor.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- ApplicationService.cs
- IApplicationService.cs
- ChangeEmailInteractor.cs
- ChangePasswordInteractor.cs
- ConfirmEmailInteractor.cs
- RegisterUserInteractor.cs
- AccountDeactivatedInteractor.cs
- AccountDeletedInteractor.cs
- EmailChangedInteractor.cs
- EmailConfirmationExpiredInteractor.cs
- EmailConfirmedInteractor.cs
- UserRegisteredInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- User.cs
- UserValidator.cs
- EmailStatus.cs
- Email.cs
- EmailValidator.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- UnitOfWork.cs
- Consumer.cs
- ChangeEmailConsumer.cs
- ChangePasswordConsumer.cs
- ConfirmEmailConsumer.cs
- RegisterUserConsumer.cs
- AccountDeactivatedConsumer.cs
- AccountDeletedConsumer.cs
- EmailChangedConsumer.cs
- EmailConfirmationExpiredConsumer.cs
- EmailConfirmedConsumer.cs
- UserRegisteredConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IJwtTokenGenerator.cs
- IPasswordHasher.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectUserDetailsWhenUserChangedInteractor.cs
- GetUserDetailsInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- GrpcService.csproj
- IdentityGrpcService.cs
- Program.cs
- ServiceCollectionExtensions.cs
- JwtOptions.cs
- Infrastructure.Authentication.csproj
- JwtTokenGenerator.cs
- PasswordHasher.cs
- ProjectUserDetailsWhenUserChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- IEventBusGateway.cs
- IEventStoreGateway.cs
- IInteractor.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- ApplicationService.cs
- IApplicationService.cs
- ConfirmOrderWhenPaymentCompletedInteractor.cs
- PlaceOrderWhenCartSubmittedInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- Order.cs
- OrderValidator.cs
- OrderItem.cs
- OrderItemValidator.cs
- PaymentMethod.cs
- PaymentMethodValidator.cs
- OrderStatus.cs
- Address.cs
- AddressValidator.cs
- CreditCard.cs
- CreditCardValidator.cs
- DebitCard.cs
- DebitCardValidator.cs
- PayPal.cs
- PayPalValidator.cs
- IPaymentOption.cs
- Product.cs
- ProductValidator.cs
- Currency.cs
- Money.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- UnitOfWork.cs
- Consumer.cs
- ConfirmOrderWhenPaymentCompletedConsumer.cs
- PlaceOrderWhenCartSubmittedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectOrderDetailsWhenOrderChangedInteractor.cs
- GetOrderDetailsInteractor.cs
- ListOrdersGridItemsInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- GrpcService.csproj
- OrderGrpcService.cs
- Program.cs
- Consumer.cs
- ProjectOrderDetailsWhenOrderChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- IEventBusGateway.cs
- IEventStoreGateway.cs
- ApplicationHttpClient.cs
- HttpResponse.cs
- IPaymentResult.cs
- IPaymentService.cs
- PaymentService.cs
- IInteractor.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- ICreditCardHttpClient.cs
- Requests.cs
- CreditCardPaymentResult.cs
- ICreditCardPaymentService.cs
- IDebitCardHttpClient.cs
- Requests.cs
- DebitCardPaymentResult.cs
- IDebitCardPaymentService.cs
- IPayPalHttpClient.cs
- Requests.cs
- IPayPalPaymentService.cs
- PaypalPaymentResult.cs
- ApplicationService.cs
- IApplicationService.cs
- IPaymentGateway.cs
- PaymentGateway.cs
- CancelPaymentInteractor.cs
- ProceedWithPaymentWhenRequestedInteractor.cs
- RequestPaymentWhenOrderPlacedInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- Payment.cs
- PaymentValidator.cs
- PaymentMethod.cs
- PaymentMethodValidator.cs
- PaymentMethodStatus.cs
- PaymentStatus.cs
- Address.cs
- AddressValidator.cs
- CreditCard.cs
- CreditCardValidator.cs
- DebitCard.cs
- DebitCardValidator.cs
- PayPal.cs
- PayPalValidator.cs
- IPaymentOption.cs
- Currency.cs
- Money.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- UnitOfWork.cs
- CreditCardHttpClient.cs
- CreditCardPaymentService.cs
- DebitCardHttpClient.cs
- DebitCardPaymentService.cs
- ServiceCollectionExtensions.cs
- HttpPolicy.cs
- HttpClientOptions.cs
- PayPalHttpClient.cs
- PayPalPaymentService.cs
- Infrastructure.HTTP.csproj
- Consumer.cs
- CancelPaymentConsumer.cs
- ProceedWithPaymentWhenRequestedConsumer.cs
- RequestPaymentWhenOrderPlacedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectPaymentMethodDetailsWhenChangedInteractor.cs
- ProjectPaymentWhenChangedInteractor.cs
- GetPaymentDetailsInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- GrpcService.csproj
- PaymentGrpcService.cs
- Program.cs
- Consumer.cs
- ProjectPaymentDetailsWhenChangedConsumer.cs
- ProjectPaymentMethodDetailsWhenChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ILazyInteractorProvider.cs
- LazyInteractorProvider.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- IEventBusGateway.cs
- IEventStoreGateway.cs
- IInteractor.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- ApplicationService.cs
- IApplicationService.cs
- AddBillingAddressInteractor.cs
- AddCartItemInteractor.cs
- AddCreditCardInteractor.cs
- AddDebitCardInteractor.cs
- AddPayPalInteractor.cs
- AddShippingAddressInteractor.cs
- ChangeCartItemQuantityInteractor.cs
- CheckOutCartInteractor.cs
- CreateCartInteractor.cs
- DiscardCartInteractor.cs
- RebuildCartProjectionInteractor.cs
- RemoveCartItemInteractor.cs
- RemovePaymentMethodInteractor.cs
- PublishCartSubmittedWhenCartCheckedOutInteractor.cs
- PublishProjectionRebuiltWhenRequestedInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- ShoppingCart.cs
- ShoppingCartValidator.cs
- CartItem.cs
- CartItemValidator.cs
- PaymentMethod.cs
- PaymentMethodValidator.cs
- CartStatus.cs
- Address.cs
- AddressValidator.cs
- CreditCard.cs
- CreditCardValidator.cs
- DebitCard.cs
- DebitCardValidator.cs
- PayPal.cs
- PayPalValidator.cs
- IPaymentOption.cs
- Product.cs
- ProductValidator.cs
- Currency.cs
- Money.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- UnitOfWork.cs
- Consumer.cs
- AddBillingAddressConsumer.cs
- AddCartItemConsumer.cs
- AddCreditCardConsumer.cs
- AddDebitCardConsumer.cs
- AddPayPalConsumer.cs
- AddShippingAddressConsumer.cs
- ChangeCartItemQuantityConsumer.cs
- CheckOutCartConsumer.cs
- CreateCartConsumer.cs
- DiscardCartConsumer.cs
- RebuildCartProjectionConsumer.cs
- RemoveCartItemConsumer.cs
- RemovePaymentMethodConsumer.cs
- PublishCartProjectionRebuiltWhenRequestedConsumer.cs
- PublishCartSubmittedWhenCartCheckedOutConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectCartDetailsWhenCartChangedInteractor.cs
- ProjectCartItemListItemWhenCartChangedInteractor.cs
- ProjectPaymentMethodListItemWhenCartChangedInteractor.cs
- GetCustomerShoppingCartDetailsInteractor.cs
- GetPaymentMethodDetailsInteractor.cs
- GetShoppingCartDetailsInteractor.cs
- GetShoppingCartItemDetailsInteractor.cs
- ListPaymentMethodsListItemsInteractor.cs
- ListShoppingCartItemsListItemsInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- appsettings.Testing.json
- Dockerfile
- GrpcService.csproj
- Program.cs
- ShoppingCartGrpcService.cs
- Consumer.cs
- ProjectCartDetailsWhenChangedConsumer.cs
- ProjectCartItemListItemWhenCartChangedConsumer.cs
- ProjectPaymentMethodListItemWhenCartChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- IEventBusGateway.cs
- IEventStoreGateway.cs
- IInteractor.cs
- IUnitOfWork.cs
- ServiceCollectionExtensions.cs
- ApplicationService.cs
- IApplicationService.cs
- CreateInventoryInteractor.cs
- DecreaseInventoryAdjustInteractor.cs
- IncreaseInventoryAdjustInteractor.cs
- ReceiveInventoryItemInteractor.cs
- ReserveInventoryItemWhenCartItemAddedInteractor.cs
- Application.csproj
- AggregateRoot.cs
- IAggregateRoot.cs
- Entity.cs
- IEntity.cs
- IEventStoreRepository.cs
- Snapshot.cs
- StoreEvent.cs
- Inventory.cs
- InventoryValidator.cs
- DecreaseAdjustment.cs
- IAdjustment.cs
- IncreaseAdjustment.cs
- InventoryItem.cs
- InventoryItemValidator.cs
- Reserve.cs
- Product.cs
- ProductValidator.cs
- Domain.csproj
- SnapshotConfiguration.cs
- StoreEventConfiguration.cs
- AggregateConverter.cs
- EventConverter.cs
- EventStoreDbContext.cs
- ServiceCollectionExtensions.cs
- EventStoreOptions.cs
- SqlServerRetryingOptions.cs
- AggregateNotFoundException.cs
- 20230213214413_First Migration.cs
- 20230213214413_First Migration.Designer.cs
- 20230213214427_Quartz Migration.cs
- 20230213214427_Quartz Migration.Designer.cs
- EventStoreDbContextModelSnapshot.cs
- EventStoreGateway.cs
- EventStoreRepository.cs
- Infrastructure.EventStore.csproj
- UnitOfWork.cs
- Consumer.cs
- CreateInventoryConsumer.cs
- DecreaseInventoryAdjustConsumer.cs
- IncreaseInventoryAdjustConsumer.cs
- ReceiveInventoryItemConsumer.cs
- CartItemAddedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- MessageBusOptions.cs
- BusinessValidatorFilter.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingPublishObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- EventBusGateway.cs
- Infrastructure.MessageBus.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WorkerService.csproj
- IInteractor.cs
- IProjectionGateway.cs
- ServiceCollectionExtensions.cs
- ProjectInventoryGridItemWhenInventoryChangedInteractor.cs
- ProjectInventoryItemListItemWhenInventoryItemChangedInteractor.cs
- ListInventoriesGridItemInteractor.cs
- ListInventoryItemsListItemsInteractor.cs
- Application.csproj
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- GrpcService.csproj
- Program.cs
- WarehouseGrpcService.cs
- Consumer.cs
- ProjectInventoryGridItemWhenInventoryChangedConsumer.cs
- ProjectInventoryItemListItemWhenInventoryItemChangedConsumer.cs
- NameFormatterExtensions.cs
- RabbitMqBusFactoryConfiguratorExtensions.cs
- ServiceCollectionExtensions.cs
- EventBusOptions.cs
- ContractValidatorFilter.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- Infrastructure.EventBus.csproj
- IMongoDbContext.cs
- MongoDbContext.cs
- ServiceCollectionExtensions.cs
- PagedResult.cs
- Infrastructure.Projections.csproj
- ProjectionDbContext.cs
- ProjectionGateway.cs
- ApplicationApi.cs
- IRequest.cs
- PagedResult.cs
- Problem.cs
- Validatable.cs
- AddBillingAddressValidator.cs
- AddShippingAddressValidator.cs
- DeleteAccountValidator.cs
- GetAccountValidator.cs
- ListAccountsDetailsValidator.cs
- ListShippingAddressesListItemsValidator.cs
- AccountApi.cs
- Commands.cs
- Queries.cs
- ActivateCatalogValidator.cs
- AddCatalogItemPayloadValidator.cs
- AddCatalogItemValidator.cs
- ChangeCatalogDescriptionValidator.cs
- ChangeCatalogTitleValidator.cs
- CreateCatalogPayloadValidator.cs
- CreateCatalogValidator.cs
- DeactivateCatalogValidator.cs
- DeleteCatalogValidator.cs
- GetCatalogItemDetailsValidator.cs
- ListCatalogItemsCardsValidator.cs
- ListCatalogItemsListItemsRequestValidator.cs
- ListCatalogsGridItemsValidator.cs
- RemoveCatalogItemValidator.cs
- CatalogApi.cs
- Commands.cs
- Payloads.cs
- Queries.cs
- ListNotificationsDetailsValidator.cs
- CommunicationApi.cs
- Queries.cs
- ChangeEmailValidator.cs
- ChangePasswordValidator.cs
- ConfirmEmailValidator.cs
- RegisterUserValidator.cs
- SignInValidator.cs
- SignUpPayloadValidator.cs
- Commands.cs
- IdentityApi.cs
- Payloads.cs
- Queries.cs
- CancelOrderValidator.cs
- Commands.cs
- OrderApi.cs
- GetCatalogItemDetailsValidator.cs
- GetPaymentMethodDetailsValidator.cs
- ListPaymentMethodListItemValidator.cs
- PaymentApi.cs
- Queries.cs
- AddBillingAddressValidator.cs
- AddCartItemPayloadValidator.cs
- AddCartItemValidator.cs
- AddCreditCardPayloadValidator.cs
- AddCreditCardValidator.cs
- AddDebitCardPayloadValidator.cs
- AddDebitCardValidator.cs
- AddPayPalPayloadValidator.cs
- AddPayPalValidator.cs
- AddShippingAddressValidator.cs
- ChangeCartItemQuantityValidator.cs
- CheckOutValidator.cs
- CreateCartPayloadValidator.cs
- CreateCartValidator.cs
- GetCustomerShoppingCartDetailsValidator.cs
- GetPaymentMethodDetailsValidator.cs
- GetShoppingCartDetailsValidator.cs
- GetShoppingCartItemDetailsValidator.cs
- ListPaymentMethodsListItemsValidator.cs
- ListShoppingCartItemsListItemsValidator.cs
- RebuildProjectionValidator.cs
- RemoveCartItemValidator.cs
- RemovePaymentMethodValidator.cs
- Commands.cs
- Payloads.cs
- Queries.cs
- ShoppingCartApi.cs
- CreateInventoryValidator.cs
- DecreaseInventoryAdjustValidator.cs
- IncreaseInventoryAdjustValidator.cs
- ListInventoryGridItemsValidator.cs
- ListInventoryItemsListItemsValidator.cs
- ReceiveInventoryItemValidator.cs
- Commands.cs
- Queries.cs
- WarehouseApi.cs
- ServiceCollectionExtensions.cs
- SwaggerExtensions.cs
- AccountGrpcClientOptions.cs
- CatalogGrpcClientOptions.cs
- CommunicationGrpcClientOptions.cs
- ConfigureSwaggerOptions.cs
- IdentityGrpcClientOptions.cs
- MessageBusOptions.cs
- PaymentGrpcClientOptions.cs
- ShoppingCartGrpcClientOptions.cs
- WarehouseGrpcClientOptions.cs
- LoggingConsumeObserver.cs
- LoggingReceiveObserver.cs
- LoggingSendObserver.cs
- launchSettings.json
- .dockerignore
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- Dockerfile
- Program.cs
- WebAPI.csproj
- ApplicationHttpClient.cs
- HttpResponse.cs
- PagedResult.cs
- ServiceCollectionExtensions.cs
- ECommerceHttpClientOptions.cs
- CatalogHttpClient.cs
- ICatalogHttpClient.cs
- Requests.cs
- HttpPolicy.cs
- CatalogCanvas.razor
- CatalogCard.razor
- CatalogGrid.razor
- Catalogs.razor
- Home.razor
- Product.razor
- launchSettings.json
- Carousel.razor
- MainLayout.razor
- MainLayout.razor.css
- MeasureLatency.razor
- NavBar.razor
- ProductCard.razor
- SearchBar.razor
- CatalogCardViewModel.cs
- CatalogGridViewModel.cs
- CatalogItemViewModel.cs
- ProductViewModel.cs
- bootstrap.css
- bootstrap.min.css
- app.css
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- index.html
- .dockerignore
- _Imports.razor
- App.razor
- Dockerfile
- Program.cs
- WebAPP.csproj
- test.js
- ProjectCartDetailsWhenCartChangedInteractorTests.cs
- ShoppingCartQueryStackIntegrationTests.csproj
- ShoppingCartServiceClientFixture.cs
- AggregateTests.cs
- ShoppingCartTests.cs
- ShoppingCartTests.csproj
- ECommerce.WebAPI.IntegrationTests.csproj
- ShoppingCartIntegrationTests.cs
- TestingWebApplicationFactory.cs
- .dockerignore
- .gitignore
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- Directory.Build.props
- docker-compose.Development.Infrastructure.yaml
- docker-compose.Staging.Infrastructure.yaml
- docker-compose.Staging.Services.yaml
- EDA.CleanArch.DDD.CQRS.EventSourcing.sln.DotSettings
- EventualShop.sln
- filebeat.yml
- global.json
- LICENSE
- nginx.conf
- nuget.config
- README.md
# Installation Guide
git clone https://github.com/AntonioFalcaoJr/EventualShop
Downloads the entire project code from GitHub to your computer.
cd EventualShop
Moves into the project folder you just downloaded.
2. Docker
Easy Recommended- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker-compose -f ./docker-compose.Development.Infrastructure.yaml up -d
Runs the command against the services defined in the compose file.
docker run -d \
Runs the built image as an actual container.
docker-compose \
Runs the command against the services defined in the compose file.
-f ./docker-compose.Staging.Infrastructure.yaml \
Runs the command against the services defined in the compose file.
-f ./docker-compose.Staging.Services.yaml \
Runs the command against the services defined in the compose file.
Pulled directly from this repo's README.
3. .NET
Mediumdotnet ef migrations add "First Migration" -s .\WorkerService\ -p .\Infrastructure.EventStore\
Type this command into your terminal and run it.
Pulled directly from this repo's README.
