{"id":17298664,"url":"https://github.com/mauroservienti/all-our-aggregates-are-wrong-demos","last_synced_at":"2025-04-12T19:41:31.331Z","repository":{"id":37721767,"uuid":"147663472","full_name":"mauroservienti/all-our-aggregates-are-wrong-demos","owner":"mauroservienti","description":"A microservices powered e-commerce shopping cart sample - based on SOA principles. Demos and sample for my \"All our Aggregates are Wrong\" talk","archived":false,"fork":false,"pushed_at":"2025-04-11T04:19:20.000Z","size":1165,"stargazers_count":232,"open_issues_count":13,"forks_count":39,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-11T05:26:34.126Z","etag":null,"topics":["aggregates","ddd","demos","hacktoberfest","nservicebus","samples","soa","talks","viewmodel-composition"],"latest_commit_sha":null,"homepage":"https://milestone.topics.it/talks/all-our-aggregates-are-wrong.html","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mauroservienti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-06T11:27:35.000Z","updated_at":"2025-04-11T04:19:23.000Z","dependencies_parsed_at":"2023-11-06T05:31:48.584Z","dependency_job_id":"45ec84e5-e5c5-4c3b-b2f5-2dfdcf1a7ac1","html_url":"https://github.com/mauroservienti/all-our-aggregates-are-wrong-demos","commit_stats":{"total_commits":533,"total_committers":7,"mean_commits":76.14285714285714,"dds":0.5778611632270169,"last_synced_commit":"7ca6e12d35c768f4a1aff0c5170f2bb6a1a2a3fd"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauroservienti%2Fall-our-aggregates-are-wrong-demos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauroservienti%2Fall-our-aggregates-are-wrong-demos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauroservienti%2Fall-our-aggregates-are-wrong-demos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauroservienti%2Fall-our-aggregates-are-wrong-demos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mauroservienti","download_url":"https://codeload.github.com/mauroservienti/all-our-aggregates-are-wrong-demos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248624983,"owners_count":21135509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aggregates","ddd","demos","hacktoberfest","nservicebus","samples","soa","talks","viewmodel-composition"],"created_at":"2024-10-15T11:19:42.896Z","updated_at":"2025-04-12T19:41:31.309Z","avatar_url":"https://github.com/mauroservienti.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# All our Aggregates are Wrong - Demos\n\nA microservices-powered e-commerce shopping cart sample based on SOA principles. These are the demos for my [All our Aggregates are Wrong](https://milestone.topics.it/talks/all-our-aggregates-are-wrong.html) talk.\n\nThe demo demonstrates a shopping cart behavior and all its implemented functionalities. Add items to the cart and observe the various \"services\" console windows, which display log messages related to the ongoing processes. Leave the cart inactive for a few seconds and observe the stale cart policy kick in, first raising a warning and finally deleting stale carts.\n\n## Requirements\n\nThe following requirements must be met to run the demos successfully:\n\n- [Visual Studio Code](https://code.visualstudio.com/) and the [Dev containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers).\n- [Docker](https://www.docker.com/get-started) must be pre-installed on the machine.\n- The repository `devcontainer` setup requires `docker-compose` to be installed on the machine.\n\n## How to configure Visual Studio Code to run the demos\n\n- Clone the repository\n  - On Windows, make sure to clone on a short path, e.g., `c:\\dev`, to avoid any \"path too long\" error\n- Open one of the demo folders in Visual Studio Code\n- Make sure Docker is running\n  - If you're using Docker for Windows with Hyper-V, make sure that the cloned folder, or a parent folder, is mapped in Docker\n- Open the Visual Studio Code command palette (`F1` on all supported operating systems, for more information on VS Code keyboard shortcuts, refer to [this page](https://www.arungudelli.com/microsoft/visual-studio-code-keyboard-shortcut-cheat-sheet-windows-mac-linux/))\n- Type `Reopen in Container`, the command palette supports auto-completion; the command should be available by typing `reop`\n\nWait for Visual Studio Code Dev containers extension to:\n\n- download the required container images\n- configure the docker environment\n- configure the remote Visual Studio Code instance with the required extensions\n\n\u003e Note: no changes will be made to your Visual Studio Code installation; all changes will be applied to the VS Code instance running in the remote container\n\nThe repository `devcontainer` configuration will create:\n\n- One or more container instances:\n  - One RabbitMQ instance with management plugin support\n  - One .NET-enabled container where the repository source code will be mapped\n  - A few PostgreSQL instances\n- Configure the VS Code remote instance with:\n  - The C# extension (`ms-dotnettools.csharp`)\n  - The PostgreSQL Explorer extension (`ckolkman.vscode-postgres`)\n\nOnce the configuration is completed, VS Code will show a new `Ports` tab in the bottom-docked terminal area. The `Ports` tab will list all the ports the remote containers expose.\n\n## Containers connection information\n\nThe default RabbitMQ credentials are:\n\n- Username: `guest`\n- Password: `guest`\n\nThe default PostgreSQL credentials are:\n\n- User: `db_user`\n- Password: `P@ssw0rd`\n\n## How to run the demos\n\nTo execute the demo, open the root folder in VS Code, press `F1`, and search for `Reopen in container`. Wait for the Dev Container to complete the setup process.\n\nOnce the demo content has been reopened in the dev container:\n\n1. Press `F1`, search for `Run task`, and execute the desired task to build the solution or to build the solution and deploy the required data\n2. Go to the `Run and Debug` VS Code section and select the command you want to execute.\n\n### Disclaimer\n\nThis demo is built using [NServiceBus Sagas](https://docs.particular.net/nservicebus/sagas/); I work for [Particular Software](https://particular.net/), the makers of NServiceBus.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmauroservienti%2Fall-our-aggregates-are-wrong-demos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmauroservienti%2Fall-our-aggregates-are-wrong-demos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmauroservienti%2Fall-our-aggregates-are-wrong-demos/lists"}