Add DeliveryBot Robot Simulator project#38
Open
DakotaCondos wants to merge 1 commit into
Open
Conversation
Add a new DeliveryBot Robot Simulator solution and initial codebase. This commit introduces the solution file, projects (Api, Core, Events, Infrastructure), unit tests, comprehensive docs (README, API, architecture, development, events, Azure testing), Docker support (Dockerfile, docker-compose), and a .gitignore. The simulator supports local and Azure Event Hub modes, background simulation and assignment workers, event publishers/consumers, in-memory bot fleet and stock logic, and initial test coverage for bot management, stock, and delivery simulation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Summary: Add DeliveryBot Robot Simulator
Summary
Adds the DeliveryBot Robot Simulator to the repo as a deployable .NET containerized service for testing robot-related workflows without physical robots.
The simulator hosts an in-memory fleet of simulated vending delivery bots, supports local and Docker execution, exposes management/testing endpoints, simulates delivery behavior, publishes robot events locally or to Azure Event Hubs, and includes an optional Event Hub input consumer for order assignment events.
What’s included
Added .NET robot simulator project structure:
DeliveryBot.RobotSimulator.ApiDeliveryBot.RobotSimulator.CoreDeliveryBot.RobotSimulator.EventsDeliveryBot.RobotSimulator.InfrastructureDeliveryBot.RobotSimulator.TestsAdded simulated bot fleet behavior:
Added bot management endpoints:
GET /botsGET /bots/{botId}POST /botsPATCH /bots/{botId}DELETE /bots/{botId}Added order assignment endpoint:
POST /orders/assignmentsAdded local event publishing:
GET /events/recentAdded Azure Event Hub support:
RobotOrderAssignmenteventsAdded Docker support:
Added automated tests for:
Added project documentation:
README.mddocs/architecture.mddocs/api.mddocs/events.mddocs/development.mddocs/azure-event-hub-testing.mdTesting performed
Verified successfully with local execution:
Verified successfully with Docker:
Verified simulator behavior through Swagger/API:
OnDeliverywhen moving from a completed order to a queued orderVerified successfully with temporary dummy Azure Event Hub resources:
RobotEventEnvelopestructureeventType,schemaVersion,source,isSimulated, andbotIdConfiguration notes
Default mode is local:
Azure output publishing mode:
Optional Event Hub input consumer mode:
The simulator supports both:
Separate input/output hubs:
robot-inputrobot-outputSame hub for input and output:
robot-eventsFor same-hub setups, the input consumer ignores simulator-produced events and only processes
RobotOrderAssignmentevents.Known gaps / follow-up work
ReadEventsAsyncor production checkpointing withEventProcessorClientand Blob Storage.