leytonoday/Atlas-API-Modular-Monolith
4 of 78
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): CreateUserCommandHandler persists, ProcessInboxCommandHandler publishes |
ED4 |
src/Modules/Users/Atlas.Users.Application/CQRS/Users/Commands/CreateUser/CreateUserCommandHandler.cs:9 |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Feature.Plans |
DM1 |
src/Modules/Plans/Atlas.Plans.Domain/Entities/FeatureEntity/Feature.cs:43 |
| Domain Modelling |
Repository for a non-root entity: EurLexSumDocumentRepository → EurLexSumDocument |
DM7 |
src/Modules/Law/Atlas.Law.Infrastructure/Persistance/Repositories/EurLexSumDocumentRepository.cs:8 |
| Domain Modelling |
Anemic entity: EurLexSumDocument |
DM4 |
src/Modules/Law/Atlas.Law.Domain/Entities/EurLexSumDocumentEntity/EurLexSumDocument.cs:9 |
mehdihadeli/food-delivery-modular-monolith
4 of 80
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): DeleteRestockSubscriptionsByTimeHandler.Handle |
ED4 |
src/Modules/Customers/FoodDelivery.Modules.Customers/RestockSubscriptions/Features/DeletingRestockSubscriptionsByTime/DeleteRestockSubscriptionsByTime.cs:31 |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Product.Category |
DM1 |
src/Modules/Catalogs/FoodDelivery.Modules.Catalogs/Products/Models/Product.cs:34 |
| Domain Modelling |
Anemic entity: Aggregate |
DM4 |
src/BuildingBlocks/BuildingBlocks.Core/Domain/Aggregate.cs:9 |
| Domain Modelling |
Domain uses infrastructure in a method body: ChangingProductBrandValidationHandler |
DM6 |
src/Modules/Catalogs/FoodDelivery.Modules.Catalogs/Products/Features/ChangingProductBrand/Events/Domain/ChangingProductBrand.cs:12 |
desenvolvedor-io/dev-store
4 of 52
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): CatalogIntegrationHandler.WriteDownInventory |
ED4 |
src/services/DevStore.Catalog.API/Services/CatalogIntegrationHandler.cs:29 |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Order.Voucher |
DM1 |
src/services/DevStore.Orders.Domain/Orders/Order.cs:43 |
| Domain Modelling |
Repository for a non-root entity: OrderRepository → Order |
DM7 |
src/services/DevStore.Orders.Infra/Repository/OrderRepository.cs:13 |
| Domain Modelling |
Anemic entity: Payment |
DM4 |
src/services/DevStore.Billing.API/Models/Payment.cs:7 |
foxminchan/BookWorm
4 of 80
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): UpdateBasketHandler persists, FeedbackCreatedIntegrationEventHandler publishes |
ED4 |
src/Services/Basket/BookWorm.Basket/Features/Update/UpdateBasketCommand.cs:9 |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Book.Category |
DM1 |
src/Services/Catalog/BookWorm.Catalog/Domain/AggregatesModel/BookAggregate/Book.cs:45 |
| Domain Modelling |
Anemic entity: AuditableEntity |
DM4 |
src/BuildingBlocks/BookWorm.SharedKernel/SeedWork/AuditableEntity.cs:5 |
| Domain Modelling |
Domain uses infrastructure in a method body: FeedbackCreatedEventHandler |
DM6 |
src/Services/Rating/BookWorm.Rating/Domain/EventHandlers/FeedbackCreatedEventHandler.cs:6 |
mehdihadeli/food-delivery-modular-monolith
4 of 31
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): DeleteRestockSubscriptionsByTimeHandler.Handle |
ED4 |
src/Modules/Customers/FoodDelivery.Modules.Customers/RestockSubscriptions/Features/DeletingRestockSubscriptionsByTime/DeleteRestockSubscriptionsByTime.cs:31 |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Product.Category |
DM1 |
src/Modules/Catalogs/FoodDelivery.Modules.Catalogs/Products/Models/Product.cs:34 |
| Domain Modelling |
Anemic entity: AuditableEntity |
DM4 |
src/BuildingBlocks/BuildingBlocks.Core/Domain/AuditableEntity.cs:5 |
| Domain Modelling |
Domain uses infrastructure in a method body: ChangingProductBrandValidationHandler |
DM6 |
src/Modules/Catalogs/FoodDelivery.Modules.Catalogs/Products/Features/ChangingProductBrand/Events/Domain/ChangingProductBrand.cs:12 |
kamilbaczek/Modular-monolith-by-example
4 of 46
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): MakeInquiryCommandHandler.Handle |
ED4 |
Src/Modules/Inquiries/Divstack.Company.Estimation.Tool.Inquiries.Application/Inquiries/Commands/Make/MakeInquiryCommandHandler.cs:33 |
| Domain Modelling |
Anemic entity: Inquiry |
DM4 |
Src/Modules/Inquiries/Divstack.Company.Estimation.Tool.Inquiries.Domain/Inquiries/Inquiry.cs:12 |
| Domain Modelling |
Domain uses infrastructure in a method body: InquiriesRepository |
DM6 |
Src/Modules/Inquiries/Divstack.Company.Estimation.Tool.Inquiries.Persistance/Domain/Inquiries/InquiriesRepository.cs:6 |
| Event Sourcing |
Mutable event: PriorityDefined |
ES2 |
Src/Modules/Priorities/Divstack.Company.Estimation.Tool.Priorities.IntegrationsEvents/ExternalEvents/PriorityDefined.cs:5 |
dotnet/eShop
4 of 32
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): OrderStatusChangedToPaidIntegrationEventHandler persists, GracePeriodConfirmedIntegrationEventHandler publishes |
ED4 |
src/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs:3 |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Order.Buyer |
DM1 |
src/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs:16 |
| Domain Modelling |
Anemic entity: PaymentMethod |
DM4 |
src/Ordering.Domain/AggregatesModel/BuyerAggregate/PaymentMethod.cs:5 |
| Domain Modelling |
Integration event couples to a producer-owned enum: OrderStatusChangedToAwaitingValidationIntegrationEvent.OrderStatus |
DM3 |
src/Ordering.API/Application/IntegrationEvents/Events/OrderStatusChangedToAwaitingValidationIntegrationEvent.cs:6 |
vardius/go-api-boilerplate
4 of 16
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): clientRepository.Save |
ED4 |
cmd/auth/internal/infrastructure/repository/client_repository.go:23 |
| Event-Driven |
Temporal coupling in handler: WhenUserAccessTokenWasRequested |
ED1 |
cmd/user/internal/application/eventhandler/when_user_access_token_was_requested.go:23 |
| Domain Modelling |
Leaky repository contract: ClientRepository |
DM7 |
cmd/auth/internal/infrastructure/persistence/client.go:30 |
| Event Sourcing |
PII in event: AccessTokenWasRequested |
ES3 |
cmd/user/internal/domain/user/events.go:22 |
desenvolvedor-io/dev-store
4 of 25
| Lens | Finding | Dimension | Location |
| Event-Driven |
Dual write (no outbox): CatalogIntegrationHandler.WriteDownInventory |
ED4 |
src/services/DevStore.Catalog.API/Services/CatalogIntegrationHandler.cs:29 |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Order.Voucher |
DM1 |
src/services/DevStore.Orders.Domain/Orders/Order.cs:43 |
| Domain Modelling |
Anemic entity: Payment |
DM4 |
src/services/DevStore.Billing.API/Models/Payment.cs:7 |
| Domain Modelling |
Repository for a non-root entity: OrderRepository → Order |
DM7 |
src/services/DevStore.Orders.Infra/Repository/OrderRepository.cs:13 |
profjordanov/restaurant
4 of 64
| Lens | Finding | Dimension | Location |
| Domain Modelling |
Aggregate holds a reference to another aggregate: Meal.Restaurant |
DM1 |
server/src/server/Restaurant.Domain/Entities/Meal.cs:24 |
| Domain Modelling |
Anemic entity: Meal |
DM4 |
server/src/server/Restaurant.Domain/Entities/Meal.cs:9 |
| Domain Modelling |
Mutable entity: Meal |
DM5 |
server/src/server/Restaurant.Domain/Entities/Meal.cs:9 |
| Domain Modelling |
Domain depends on infrastructure: IAsyncLogger |
DM6 |
server/src/server/Restaurant.Domain/Connectors/IAsyncLogger.cs:8 |