Skip to content

Adds Mocha#9176

Merged
michaelstaib merged 21 commits intomainfrom
pse/adds-mocha
Mar 4, 2026
Merged

Adds Mocha#9176
michaelstaib merged 21 commits intomainfrom
pse/adds-mocha

Conversation

@PascalSenn
Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings February 23, 2026 11:16
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces the new “Mocha” messaging infrastructure, including transports (RabbitMQ + in-memory), outbox support, EF Core integration, hosting utilities, and a demo apphost with sample services/scripts.

Changes:

  • Added RabbitMQ and in-memory transport projects with endpoint descriptors, conventions, and receive middleware.
  • Added outbox primitives + EF Core interceptors and Postgres persistence helpers (outbox + sagas).
  • Added threading utilities (continuous worker / channel processor) and demo app + scripts.

Reviewed changes

Copilot reviewed 238 out of 780 changed files in this pull request and generated 21 comments.

Show a summary per file
File Description
src/Mocha/src/Mocha.Transport.RabbitMQ/RabbitMQMessageHeaders.cs Adds RabbitMQ header keys + typed header reading helpers
src/Mocha/src/Mocha.Transport.RabbitMQ/RabbitMQMessageEnvelopeParser.cs Maps BasicDeliverEventArgs to MessageEnvelope
src/Mocha/src/Mocha.Transport.RabbitMQ/Mocha.Transport.RabbitMQ.csproj New RabbitMQ transport project definition
src/Mocha/src/Mocha.Transport.RabbitMQ/Middlewares/Receive/RabbitMQReceiveMiddlewares.cs Exposes RabbitMQ receive middleware presets
src/Mocha/src/Mocha.Transport.RabbitMQ/Middlewares/Receive/RabbitMQParsingMiddleware.cs Receive middleware to parse RabbitMQ delivery into envelope
src/Mocha/src/Mocha.Transport.RabbitMQ/Middlewares/Receive/RabbitMQAcknowledgementMiddleware.cs Receive middleware for ack/nack behavior
src/Mocha/src/Mocha.Transport.RabbitMQ/MessageBusBuilderExtensions.cs Host builder extension to register RabbitMQ transport
src/Mocha/src/Mocha.Transport.RabbitMQ/Features/RabbitMQReceiveFeature.cs Feature carrying RabbitMQ channel + delivery args
src/Mocha/src/Mocha.Transport.RabbitMQ/Descriptors/RabbitMQDispatchEndpointDescriptor.cs RabbitMQ dispatch endpoint descriptor
src/Mocha/src/Mocha.Transport.RabbitMQ/Descriptors/IRabbitMQReceiveEndpointDescriptor.cs RabbitMQ receive endpoint fluent descriptor interface
src/Mocha/src/Mocha.Transport.RabbitMQ/Descriptors/IRabbitMQDispatchEndpointDescriptor.cs RabbitMQ dispatch endpoint fluent descriptor interface
src/Mocha/src/Mocha.Transport.RabbitMQ/Conventions/RabbitMQDispatchEndpointTopologyConvention.cs Auto-provisions dispatch topology resources
src/Mocha/src/Mocha.Transport.RabbitMQ/Conventions/RabbitMQDefaultReceiveEndpointEndpointConvention.cs Defaults queue/error/skipped endpoint URIs
src/Mocha/src/Mocha.Transport.RabbitMQ/Conventions/IRabbitMQReceiveEndpointTopologyConvention.cs RabbitMQ receive topology convention interface
src/Mocha/src/Mocha.Transport.RabbitMQ/Conventions/IRabbitMQReceiveEndpointConfigurationConvention.cs RabbitMQ receive configuration convention interface
src/Mocha/src/Mocha.Transport.RabbitMQ/Conventions/IRabbitMQDispatchEndpointTopologyConvention.cs RabbitMQ dispatch topology convention interface
src/Mocha/src/Mocha.Transport.RabbitMQ/Configurations/RabbitMQReceiveEndpointConfiguration.cs RabbitMQ receive endpoint config (queue/prefetch)
src/Mocha/src/Mocha.Transport.RabbitMQ/Configurations/RabbitMQDispatchEndpointConfiguration.cs RabbitMQ dispatch endpoint config (queue/exchange)
src/Mocha/src/Mocha.Transport.RabbitMQ/Assembly.cs InternalsVisibleTo for transport tests
src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryTopicBinding.cs In-memory topic-to-topic binding
src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryTopic.cs In-memory topic routing + cycle prevention
src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryQueueBinding.cs In-memory topic-to-queue binding
src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryBinding.cs Base binding abstraction
src/Mocha/src/Mocha.Transport.InMemory/Topology/IInMemoryResource.cs In-memory topology resource send contract
src/Mocha/src/Mocha.Transport.InMemory/Topology/Extensions/InMemoryTransportDescriptorExtensions.cs Adds in-memory default conventions
src/Mocha/src/Mocha.Transport.InMemory/Topology/Extensions/InMemoryMessageTypeDescriptorExtensions.cs Outbound routing helpers for in-memory endpoints
src/Mocha/src/Mocha.Transport.InMemory/Topology/Descriptors/InMemoryQueueDescriptor.cs In-memory queue topology descriptor
src/Mocha/src/Mocha.Transport.InMemory/Topology/Descriptors/InMemoryExchangeDescriptor.cs In-memory topic topology descriptor (file/class)
src/Mocha/src/Mocha.Transport.InMemory/Topology/Descriptors/InMemoryBindingDescriptor.cs In-memory binding topology descriptor
src/Mocha/src/Mocha.Transport.InMemory/Topology/Descriptors/IInMemoryTopicDescriptor.cs In-memory topic descriptor interface
src/Mocha/src/Mocha.Transport.InMemory/Topology/Descriptors/IInMemoryQueueDescriptor.cs In-memory queue descriptor interface
src/Mocha/src/Mocha.Transport.InMemory/Topology/Descriptors/IInMemoryBindingDescriptor.cs In-memory binding descriptor interface
src/Mocha/src/Mocha.Transport.InMemory/Topology/Configurations/InMemoryTopicConfiguration.cs In-memory topic config
src/Mocha/src/Mocha.Transport.InMemory/Topology/Configurations/InMemoryQueueConfiguration.cs In-memory queue config
src/Mocha/src/Mocha.Transport.InMemory/Topology/Configurations/InMemoryBindingConfiguration.cs In-memory binding config (+ destination kind enum)
src/Mocha/src/Mocha.Transport.InMemory/Mocha.Transport.InMemory.csproj New in-memory transport project definition
src/Mocha/src/Mocha.Transport.InMemory/MessageBusBuilderExtensions.cs Host builder extension to register in-memory transport
src/Mocha/src/Mocha.Transport.InMemory/InMemoryReceiveEndpoint.cs In-memory receive endpoint implementation
src/Mocha/src/Mocha.Transport.InMemory/Descriptors/InMemoryReceiveEndpointDescriptor.cs In-memory receive endpoint descriptor
src/Mocha/src/Mocha.Transport.InMemory/Descriptors/InMemoryDispatchEndpointDescriptor.cs In-memory dispatch endpoint descriptor
src/Mocha/src/Mocha.Transport.InMemory/Descriptors/IInMemoryReceiveEndpointDescriptor.cs In-memory receive endpoint fluent interface
src/Mocha/src/Mocha.Transport.InMemory/Descriptors/IInMemoryMessagingTransportDescriptor.cs In-memory transport fluent interface
src/Mocha/src/Mocha.Transport.InMemory/Descriptors/IInMemoryDispatchEndpointDescriptor.cs In-memory dispatch endpoint fluent interface
src/Mocha/src/Mocha.Transport.InMemory/Conventions/InMemoryDispatchEndpointTopologyConvention.cs Auto-provisions in-memory dispatch topology
src/Mocha/src/Mocha.Transport.InMemory/Conventions/InMemoryDefaultReceiveEndpointEndpointConvention.cs Defaults in-memory queue name
src/Mocha/src/Mocha.Transport.InMemory/Conventions/IInMemoryReceiveEndpointTopologyConvention.cs In-memory receive topology convention interface
src/Mocha/src/Mocha.Transport.InMemory/Conventions/IInMemoryReceiveEndpointConfigurationConvention.cs In-memory receive configuration convention interface
src/Mocha/src/Mocha.Transport.InMemory/Conventions/IInMemoryDispatchEndpointTopologyConvention.cs In-memory dispatch topology convention interface
src/Mocha/src/Mocha.Transport.InMemory/Configurations/InMemoryTransportConfiguration.cs In-memory transport configuration container
src/Mocha/src/Mocha.Transport.InMemory/Configurations/InMemoryReceiveEndpointConfiguration.cs In-memory receive endpoint config
src/Mocha/src/Mocha.Transport.InMemory/Configurations/InMemoryDispatchEndpointConfiguration.cs In-memory dispatch endpoint config
src/Mocha/src/Mocha.Transport.InMemory/Assembly.cs InternalsVisibleTo for transport tests
src/Mocha/src/Mocha.Threading/Mocha.Threading.csproj New threading utilities project definition
src/Mocha/src/Mocha.Threading/ExponentialBackoff.cs Exponential backoff helper used by background loops
src/Mocha/src/Mocha.Threading/ContinuousTask.cs Continuous background worker loop with backoff
src/Mocha/src/Mocha.Threading/ChannelProcessor.cs Multi-worker processor for async enumerable sources
src/Mocha/src/Mocha.Threading/Assembly.cs InternalsVisibleTo for Mocha
src/Mocha/src/Mocha.Outbox/OutboxMiddlewareFeature.cs Feature for bypassing outbox per-dispatch
src/Mocha/src/Mocha.Outbox/OutboxDispatchContextExtensions.cs Convenience extension to toggle outbox behavior
src/Mocha/src/Mocha.Outbox/OutboxCoreServiceCollectionExtensions.cs Registers outbox infrastructure into host builder
src/Mocha/src/Mocha.Outbox/Mocha.Outbox.csproj New outbox project definition
src/Mocha/src/Mocha.Outbox/MessageBusOutboxSignal.cs Async signal implementation for outbox worker coordination
src/Mocha/src/Mocha.Outbox/IOutboxSignal.cs Outbox signal abstraction
src/Mocha/src/Mocha.Outbox/IMessageOutbox.cs Message outbox persistence abstraction
src/Mocha/src/Mocha.Outbox/DispatchOutboxMiddleware.cs Dispatch middleware persisting messages to outbox
src/Mocha/src/Mocha.Hosting/Topology/MessageBusEndpointRouteBuilderExtensions.cs HTTP endpoint exposing message bus topology
src/Mocha/src/Mocha.Hosting/Mocha.Hosting.csproj Hosting utilities project definition
src/Mocha/src/Mocha.Hosting/HealthResponse.cs Health response contract
src/Mocha/src/Mocha.Hosting/HealthRequest.cs Health request contract
src/Mocha/src/Mocha.Hosting/Health/MessageBusHealthCheckExtensions.cs Registers message bus health check handlers
src/Mocha/src/Mocha.Hosting/Health/MessageBusHealthCheck.cs Health check implementation using message bus request/reply
src/Mocha/src/Mocha.Hosting/Health/HealthRequestHandler.cs Health request handler returning OK
src/Mocha/src/Mocha.Hosting/Configuration/MessageBusHealthCheckOptions.cs Health check options container
src/Mocha/src/Mocha.Hosting/Assembly.cs InternalsVisibleTo for hosting tests
src/Mocha/src/Mocha.EntityFrameworkCore/Sagas/SagaState.cs EF Core saga state entity
src/Mocha/src/Mocha.EntityFrameworkCore/Sagas/SagaEntityFrameworkCorePersistanceBuilderExtensions.cs Registers EF-backed saga store
src/Mocha/src/Mocha.EntityFrameworkCore/Sagas/NoOpSagaTransaction.cs No-op saga transaction wrapper
src/Mocha/src/Mocha.EntityFrameworkCore/Sagas/EfCoreSagaTransaction.cs Wraps EF Core transaction as saga transaction
src/Mocha/src/Mocha.EntityFrameworkCore/Outbox/OutboxSaveChangesInterceptor.cs EF interceptor signaling outbox on save
src/Mocha/src/Mocha.EntityFrameworkCore/Outbox/OutboxEntityFrameworkCorePersistanceBuilderExtensions.cs Registers outbox EF interceptors
src/Mocha/src/Mocha.EntityFrameworkCore/Outbox/OutboxDbTransactionInterceptor.cs EF interceptor signaling outbox on transaction commit
src/Mocha/src/Mocha.EntityFrameworkCore/Mocha.EntityFrameworkCore.csproj EF Core integration project definition
src/Mocha/src/Mocha.EntityFrameworkCore/MessagingDbContextOptionsExtension.cs EF options extension to inject messaging services
src/Mocha/src/Mocha.EntityFrameworkCore/MessagingDbContextOptionsConfiguration.cs Applies messaging EF options by context name
src/Mocha/src/Mocha.EntityFrameworkCore/MessagingDbContextOptions.cs Holds service registration delegates for EF internal provider
src/Mocha/src/Mocha.EntityFrameworkCore/IEntityFrameworkCoreBuilder.cs Builder abstraction for EF persistence features
src/Mocha/src/Mocha.EntityFrameworkCore/IDbContextOptionsConfigurationPolyfill.cs Polyfill for EF Core 9 interface on earlier TFMs
src/Mocha/src/Mocha.EntityFrameworkCore/EntityFrameworkCorePersistanceBuilderExtensions.cs Adds callbacks for DbContext internal service provider
src/Mocha/src/Mocha.EntityFrameworkCore/EntityFrameworkCoreBuilder.cs Default EF builder implementation
src/Mocha/src/Mocha.EntityFrameworkCore/DbContextOptionsBuilderExtensions.cs Registers messaging options extension on DbContextOptionsBuilder
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Sagas/SagaStateEntityConfiguration.cs Postgres saga entity configuration
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Sagas/PostgresSagaStoreQueries.cs SQL query builder for Postgres saga store
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Sagas/PostgresSagaStoreOptions.cs Postgres saga store options container
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Sagas/PostgresSagaPersistenceModelBuilderExtensions.cs ModelBuilder extension for Postgres saga mappings
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Outbox/PostgresOutboxPersistenceModelBuilderExtensions.cs ModelBuilder extension for Postgres outbox mappings
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Outbox/PostgresOutboxMessageEntityConfiguration.cs Postgres outbox message entity configuration
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Outbox/PostgresMessageOutboxQueries.cs SQL query builder for Postgres outbox worker
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Outbox/PostgresMessageOutboxOptions.cs Postgres outbox worker options
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Outbox/OutboxMessage.cs Outbox message entity
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Outbox/MessageBusOutboxWorker.cs Hosted service running the outbox processing loop
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Mocha.EntityFrameworkCore.Postgres.csproj Postgres EF Core integration project definition
src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Assembly.cs InternalsVisibleTo for Postgres integration tests
src/Mocha/src/Mocha.Abstractions/Mocha.Abstractions.csproj Abstractions project definition
src/Mocha/src/Mocha.Abstractions/IHandler.cs Handler metadata abstraction via static abstract members
src/Mocha/src/Mocha.Abstractions/IFeatureProvider.cs Feature provider abstraction
src/Mocha/src/Mocha.Abstractions/IFeatureCollection.cs Feature collection abstraction
src/Mocha/src/Mocha.Abstractions/IEventRequestHandler.cs Request handler abstractions
src/Mocha/src/Mocha.Abstractions/IEventRequest.cs Request marker abstractions
src/Mocha/src/Mocha.Abstractions/IEventHandler.cs Event handler abstractions
src/Mocha/src/Mocha.Abstractions/IEvent.cs Event marker abstraction
src/Mocha/src/Mocha.Abstractions/BatchCompletionMode.cs Completion mode enum for batch dispatch
src/Mocha/src/Demo/scripts/config.http Demo REST Client variables
src/Mocha/src/Demo/scripts/README.md Demo scripts documentation
src/Mocha/src/Demo/scripts/05-high-volume-batch.http High-volume batch demo scenario
src/Mocha/src/Demo/scripts/02-quick-refund.http Quick refund saga demo scenario
src/Mocha/src/Demo/scripts/01-place-single-order.http Basic demo order flow scenario
src/Mocha/src/Demo/Directory.Packages.props Demo central package version management
src/Mocha/src/Demo/Demo.Shipping/appsettings.json Shipping demo app settings
src/Mocha/src/Demo/Demo.Shipping/appsettings.Development.json Shipping demo dev settings
src/Mocha/src/Demo/Demo.Shipping/Properties/launchSettings.json Shipping demo launch settings
src/Mocha/src/Demo/Demo.Shipping/Migrations/20260109160418_Outbox.cs Shipping demo outbox migration
src/Mocha/src/Demo/Demo.Shipping/Migrations/20260104231207_Init.cs Shipping demo initial migration
src/Mocha/src/Demo/Demo.Shipping/Handlers/PaymentCompletedEventHandler.cs Shipping reacts to payment and creates shipment
src/Mocha/src/Demo/Demo.Shipping/Handlers/GetShipmentStatusRequestHandler.cs Shipping request handler for shipment status
src/Mocha/src/Demo/Demo.Shipping/Handlers/CreateReturnLabelCommandHandler.cs Shipping command handler to create return label
src/Mocha/src/Demo/Demo.Shipping/Entities/ShipmentItem.cs Shipping entity models
src/Mocha/src/Demo/Demo.Shipping/Entities/Shipment.cs Shipping entity models
src/Mocha/src/Demo/Demo.Shipping/Entities/ReturnShipment.cs Shipping entity models
src/Mocha/src/Demo/Demo.Shipping/Demo.Shipping.csproj Shipping demo project definition
src/Mocha/src/Demo/Demo.Shipping/Data/ShippingDbContext.cs Shipping demo EF Core DbContext
src/Mocha/src/Demo/Demo.ServiceDefaults/Demo.ServiceDefaults.csproj Shared service defaults for demo apps
src/Mocha/src/Demo/Demo.Contracts/Saga/ReturnProcessingResponse.cs Demo saga contracts
src/Mocha/src/Demo/Demo.Contracts/Saga/RequestQuickRefundRequest.cs Demo saga contracts
src/Mocha/src/Demo/Demo.Contracts/Saga/QuickRefundResponse.cs Demo saga contracts
src/Mocha/src/Demo/Demo.Contracts/Saga/InitiateReturnRequest.cs Demo saga contracts
src/Mocha/src/Demo/Demo.Contracts/Requests/GetShipmentStatusResponse.cs Demo request/reply contracts
src/Mocha/src/Demo/Demo.Contracts/Requests/GetShipmentStatusRequest.cs Demo request/reply contracts
src/Mocha/src/Demo/Demo.Contracts/Requests/GetProductResponse.cs Demo request/reply contracts
src/Mocha/src/Demo/Demo.Contracts/Requests/GetProductRequest.cs Demo request/reply contracts
src/Mocha/src/Demo/Demo.Contracts/Events/ShipmentShippedEvent.cs Demo events
src/Mocha/src/Demo/Demo.Contracts/Events/ShipmentCreatedEvent.cs Demo events
src/Mocha/src/Demo/Demo.Contracts/Events/ReturnPackageReceivedEvent.cs Demo events
src/Mocha/src/Demo/Demo.Contracts/Events/PaymentFailedEvent.cs Demo events
src/Mocha/src/Demo/Demo.Contracts/Events/PaymentCompletedEvent.cs Demo events
src/Mocha/src/Demo/Demo.Contracts/Events/OrderPlacedEvent.cs Demo events
src/Mocha/src/Demo/Demo.Contracts/Events/BulkOrderEvent.cs Demo events
src/Mocha/src/Demo/Demo.Contracts/Demo.Contracts.csproj Demo contracts project definition
src/Mocha/src/Demo/Demo.Contracts/Commands/RestockInventoryCommand.cs Demo commands
src/Mocha/src/Demo/Demo.Contracts/Commands/ReserveInventoryCommand.cs Demo commands
src/Mocha/src/Demo/Demo.Contracts/Commands/ProcessRefundCommand.cs Demo commands
src/Mocha/src/Demo/Demo.Contracts/Commands/ProcessPartialRefundCommand.cs Demo commands
src/Mocha/src/Demo/Demo.Contracts/Commands/InspectReturnCommand.cs Demo commands
src/Mocha/src/Demo/Demo.Contracts/Commands/CreateReturnLabelCommand.cs Demo commands
src/Mocha/src/Demo/Demo.Catalog/appsettings.json Catalog demo app settings
src/Mocha/src/Demo/Demo.Catalog/appsettings.Development.json Catalog demo dev settings
src/Mocha/src/Demo/Demo.Catalog/Sagas/ReturnProcessingSaga.cs Demo saga implementation (return processing)
src/Mocha/src/Demo/Demo.Catalog/Sagas/QuickRefundSaga.cs Demo saga implementation (quick refund)
src/Mocha/src/Demo/Demo.Catalog/Properties/launchSettings.json Catalog demo launch settings
src/Mocha/src/Demo/Demo.Catalog/Migrations/20260114183145_ChangeAppManagedCOncurrencyToken.cs Catalog demo migration changes
src/Mocha/src/Demo/Demo.Catalog/Migrations/20260111204334_AdjustIndexNames.cs Catalog demo migration changes
src/Mocha/src/Demo/Demo.Catalog/Migrations/20260111204021_Sagas.cs Catalog demo saga table migration
src/Mocha/src/Demo/Demo.Catalog/Handlers/ShipmentCreatedEventHandler.cs Catalog demo event handlers
src/Mocha/src/Demo/Demo.Catalog/Handlers/RestockInventoryCommandHandler.cs Catalog demo command handlers
src/Mocha/src/Demo/Demo.Catalog/Handlers/ReserveInventoryCommandHandler.cs Catalog demo command handlers
src/Mocha/src/Demo/Demo.Catalog/Handlers/PaymentCompletedEventHandler.cs Catalog demo event handlers
src/Mocha/src/Demo/Demo.Catalog/Handlers/InspectReturnCommandHandler.cs Catalog demo command handlers
src/Mocha/src/Demo/Demo.Catalog/Handlers/GetProductRequestHandler.cs Catalog demo request handlers
src/Mocha/src/Demo/Demo.Catalog/Entities/Product.cs Catalog demo EF entities
src/Mocha/src/Demo/Demo.Catalog/Entities/OrderRecord.cs Catalog demo EF entities
src/Mocha/src/Demo/Demo.Catalog/Entities/Category.cs Catalog demo EF entities
src/Mocha/src/Demo/Demo.Catalog/Demo.Catalog.csproj Catalog demo project definition
src/Mocha/src/Demo/Demo.Billing/appsettings.json Billing demo app settings
src/Mocha/src/Demo/Demo.Billing/appsettings.Development.json Billing demo dev settings
src/Mocha/src/Demo/Demo.Billing/Properties/launchSettings.json Billing demo launch settings
src/Mocha/src/Demo/Demo.Billing/Migrations/20260111233102_AddRefundSaga.cs Billing demo migrations
src/Mocha/src/Demo/Demo.Billing/Migrations/20260109160738_Outbox.cs Billing demo migrations
src/Mocha/src/Demo/Demo.Billing/Migrations/20260104231110_Init.cs Billing demo migrations
src/Mocha/src/Demo/Demo.Billing/Handlers/ShipmentShippedEventHandler.cs Billing demo event handlers
src/Mocha/src/Demo/Demo.Billing/Handlers/ProcessRefundCommandHandler.cs Billing demo command handlers
src/Mocha/src/Demo/Demo.Billing/Handlers/ProcessPartialRefundCommandHandler.cs Billing demo command handlers
src/Mocha/src/Demo/Demo.Billing/Handlers/OrderPlacedEventHandler.cs Billing demo event handlers
src/Mocha/src/Demo/Demo.Billing/Handlers/OrderPlacedBatchHandler.cs Billing demo batch handler
src/Mocha/src/Demo/Demo.Billing/Handlers/BulkOrderBatchHandler.cs Billing demo batch handler
src/Mocha/src/Demo/Demo.Billing/Entities/RevenueSummary.cs Billing demo entities
src/Mocha/src/Demo/Demo.Billing/Entities/Refund.cs Billing demo entities
src/Mocha/src/Demo/Demo.Billing/Entities/Payment.cs Billing demo entities
src/Mocha/src/Demo/Demo.Billing/Entities/Invoice.cs Billing demo entities
src/Mocha/src/Demo/Demo.Billing/Demo.Billing.csproj Billing demo project definition
src/Mocha/src/Demo/Demo.Billing/Data/BillingDbContext.cs Billing demo EF Core DbContext
src/Mocha/src/Demo/Demo.AppHost/appsettings.json Demo AppHost settings
src/Mocha/src/Demo/Demo.AppHost/appsettings.Development.json Demo AppHost dev settings
src/Mocha/src/Demo/Demo.AppHost/Properties/launchSettings.json Demo AppHost launch settings
src/Mocha/src/Demo/Demo.AppHost/Demo.AppHost.csproj Demo AppHost project definition
src/Mocha/src/Demo/Demo.AppHost/AppHost.cs Aspire AppHost wiring for demo services
src/Mocha/Mocha.slnx Adds Mocha projects/tests to solution
src/All.slnx Adds Mocha solution folder + projects to monorepo solution
Files not reviewed (12)
  • src/Mocha/src/Demo/Demo.Billing/Migrations/20260104231110_Init.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Billing/Migrations/20260109160738_Outbox.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Billing/Migrations/20260111233102_AddRefundSaga.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Catalog/Migrations/20260104231158_Init.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Catalog/Migrations/20260106180406_Outbox.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Catalog/Migrations/20260107184104_OutboxJsonDoc.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Catalog/Migrations/20260111204021_Sagas.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Catalog/Migrations/20260111204334_AdjustIndexNames.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Catalog/Migrations/20260114183145_ChangeAppManagedCOncurrencyToken.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Shipping/Migrations/20260104231207_Init.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Shipping/Migrations/20260109160418_Outbox.Designer.cs: Language not supported
  • src/Mocha/src/Demo/Demo.Shipping/Migrations/20260111233128_AddRefundSaga.Designer.cs: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Mocha/src/Mocha.Abstractions/IEventRequest.cs
Comment thread src/Mocha/src/Mocha.Abstractions/IEventRequest.cs
Comment thread src/Mocha/src/Mocha.Abstractions/IEvent.cs Outdated
Comment thread src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Outbox/MessageBusOutboxWorker.cs Outdated
Comment thread src/Mocha/src/Mocha.Threading/ContinuousTask.cs
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 23, 2026

Fusion Gateway Performance Results

Progress: 0/6 benchmarks completed — this report updates as each job finishes.

Simple Composite Query

Req/s Err%
Constant 2 (50 VUs) pending pending
Ramping 2 (0-500-0 VUs) pending pending
Response Times
Min Med Avg P90 P95 Max
Constant 2 pending pending pending pending pending pending
Ramping 2 pending pending pending pending pending pending

Deep Recursion Query

Req/s Err%
Constant 2 (50 VUs) pending pending
Ramping 2 (0-500-0 VUs) pending pending
Response Times
Min Med Avg P90 P95 Max
Constant 2 pending pending pending pending pending pending
Ramping 2 pending pending pending pending pending pending

Variable Batching Throughput

Req/s Err%
Constant 2 (50 VUs) pending pending
Ramping 2 (0-500-0 VUs) pending pending
Response Times
Min Med Avg P90 P95 Max
Constant 2 pending pending pending pending pending pending
Ramping 2 pending pending pending pending pending pending

Runner 2 = benchmarking-2

Run 22508162028 • Commit ede809f • Fri, 27 Feb 2026 23:41:35 GMT

@glen-84
Copy link
Copy Markdown
Member

glen-84 commented Feb 23, 2026

I would suggest adding a Directory.Build.props file to the test directory, similar to src/GreenDonut/test/Directory.Build.props, with all the common properties for the tests.

Comment thread src/Directory.Packages.props Outdated
Comment thread src/Directory.Packages.props Outdated
Comment thread src/Directory.Packages.props Outdated
Comment thread src/Directory.Packages.props Outdated
Comment thread src/Directory.Packages.props
Comment thread src/Directory.Packages.props
@glen-84
Copy link
Copy Markdown
Member

glen-84 commented Feb 23, 2026

10 of these:

Demo.AppHost.csproj : warning MSB4240: Multiple versions of the same SDK "Aspire.AppHost.Sdk" cannot be specified. The previously resolved SDK version "13.0.2" from location "src\HotChocolate\AspNetCore\benchmarks\k6\Catalog.AppHost\eShop.Catalog.AppHost.csproj" will be used and the version "13.1.0" will be ignored.

@michaelstaib michaelstaib merged commit 9e2bfc3 into main Mar 4, 2026
123 checks passed
@michaelstaib michaelstaib deleted the pse/adds-mocha branch March 4, 2026 22:11
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (e49d176) to head (69db26e).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@     Coverage Diff      @@
##   main   #9176   +/-   ##
============================
============================

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants