the-real-DDD-CQRS-CleanArchitecture
A real-world example of a shopping basket API built with C#, showcasing Domain-Driven Design (DDD), Clean Architecture, and CQRS patterns. Includes features like basket management, discount application, and event-driven design with Kafka.
File Explorer
Download Latest Version (.zip)- logstash.conf
- otel-collector-config.yaml
- prometheus.yml
- me_and_mads_torgersen.gif
- me_and_mark_seemann.gif
- me_and_rebecca_wirfs_brock.gif
- me_and_robert_c_martin.gif
- me_on_domain-driven-design.gif
- me_on_functional_programming.gif
- me_on_git_project.gif
- me_on_result_pattern.gif
- System Boundries.excalidraw
- SystemBoundriesBasketApi.png
- BaseController.cs
- BasketController.cs
- CorrelationContextMiddlewareExtensions.cs
- ObservabilityExtensions.cs
- ObservabilityOptions.cs
- ProblemDetailsExtensions.cs
- SerilogRequestLoggingExtensions.cs
- CorrelationContextMiddleware.cs
- launchSettings.json
- appsettings.Development.json
- appsettings.json
- Dockerfile
- Program.cs
- VOEConsulting.Flame.BasketContext.Api.csproj
- VOEConsulting.Flame.BasketContext.Api.http
- IIntegrationEventPublisher.cs
- CommandHandlerBase.cs
- ICommand.cs
- ICommandHandler.cs
- IDomainEventDispatcher.cs
- IQuery.cs
- IQueryHandler.cs
- AddItemToBasketCommand.cs
- AddItemToBasketCommandHandler.cs
- AddItemToBasketCommandValidator.cs
- CalculateTotalAmountCommand.cs
- ClearBasketCommand.cs
- CreateBasketCommand.cs
- CreateBasketCommandHandler.cs
- CreateBasketCommandValidator.cs
- DeleteBasketItemCommand.cs
- UpdateBasketItemCountCommand.cs
- BasketDto.cs
- BasketItemDto.cs
- BasketItemInfoDto.cs
- CustomerDto.cs
- SellerDto.cs
- GetBasketQuery.cs
- GetBasketQueryHandler.cs
- CommandMetricsBehaviour.cs
- ExceptionHandlingPipelineBehaviour.cs
- LoggingPipelineBehaviour.cs
- ValidationPipelineBehaviour.cs
- ApplyCouponCommand.cs
- DomainEventDispatcher.cs
- BasketCreatedEventHandler.cs
- BasketCreatedIntegrationEvent.cs
- BasketProfile.cs
- BasketActivitySource.cs
- BasketMetrics.cs
- CommandMetrics.cs
- IBasketRepository.cs
- IRepository.cs
- IUnitOfWork.cs
- GlobalUsings.cs
- ServiceCollectionExtensions.cs
- VOEConsulting.Flame.BasketContext.Application.csproj
- BaseBasketDomainEvent.cs
- BasketCreatedEvent.cs
- BasketItemActivatedEvent.cs
- BasketItemAddedEvent.cs
- BasketItemCountUpdatedEvent.cs
- BasketItemDeactivatedEvent.cs
- BasketItemDeletedEvent.cs
- BasketItemsAmountCalculatedEvent.cs
- BasketItemsDeletedEvent.cs
- CouponAppliedEvent.cs
- CouponRemovedEvent.cs
- CustomerAssignedEvent.cs
- ShippingAmountCalculatedEvent.cs
- TotalAmountCalculatedEvent.cs
- ICouponService.cs
- ISellerLimitService.cs
- Basket.cs
- BasketItem.cs
- Customer.cs
- Quantity.cs
- Seller.cs
- BasketEventConstants.cs
- BaseCouponDomainEvent.cs
- CouponActivatedEvent.cs
- CouponCreatedEvent.cs
- CouponDeactivatedEvent.cs
- Amount.cs
- Coupon.cs
- GlobalUsings.cs
- VOEConsulting.Flame.BasketContext.Domain.csproj
- KafkaIntegrationEventPublisher.cs
- 20241223104415_Initial.cs
- 20241223104415_Initial.Designer.cs
- BasketAppDbContextModelSnapshot.cs
- BasketConfiguration.cs
- BasketItemConfiguration.cs
- CouponConfiguration.cs
- CustomerConfiguration.cs
- SellerEntityConfiguration.cs
- BasketEntity.cs
- BasketItemEntity.cs
- CouponEntity.cs
- CustomerEntity.cs
- SellerEntity.cs
- BasketProfile.cs
- BasketRepository.cs
- BasketAppDbContext.cs
- UnitOfWork.cs
- InfrastructureExtensions.cs
- VOEConsulting.Flame.BasketContext.Infrastructure.csproj
- IIntegrationEvent.cs
- IntegrationEvent.cs
- FlameApplicationException.cs
- VOEConsulting.Flame.Common.Core.csproj
- DomainError.cs
- ErrorType.cs
- IDomainError.cs
- AggregateTypeAttribute.cs
- DomainEvent.cs
- IDomainEvent.cs
- IDomainEventHandler.cs
- EventualConsistencyException.cs
- ValidationException.cs
- ValidationExtensions.cs
- IDateTimeProvider.cs
- AggregateRoot.cs
- DateRange.cs
- Entity.cs
- IAuditableEntity.cs
- Id.cs
- IId.cs
- ValueObject.cs
- VOEConsulting.Flame.Common.Domain.csproj
- BasketData.cs
- BasketItemData.cs
- CouponData.cs
- CustomerData.cs
- VOEConsulting.Flame.BasketContext.Tests.Data.csproj
- ObjectAssertionsExtensions.cs
- BasketFactory.cs
- BasketItemFactory.cs
- CouponFactory.cs
- CustomerFactory.cs
- QuantityFactory.cs
- SellerFactory.cs
- BasketItemTests.cs
- BasketTests.cs
- CouponTests.cs
- GlobalUsings.cs
- VOEConsulting.Flame.BasketContext.Tests.Unit.csproj
- .dockerignore
- .gitignore
- docker-compose.dcproj
- docker-compose.override.yml
- docker-compose.yml
- FlameBasketApp.sln
- launchSettings.json
- LICENSE
- README.md
// repository documentation
Was this content helpful?
(0 ratings)
