{"id":34362072,"url":"https://github.com/charlessolar/ddd.enterprise.example","last_synced_at":"2026-03-11T22:02:46.264Z","repository":{"id":16414714,"uuid":"19165800","full_name":"charlessolar/DDD.Enterprise.Example","owner":"charlessolar","description":"An example of an enterprise-ready architecture built with NServicebus, GetEventStore, RabbitMq, and ServiceStack","archived":false,"fork":false,"pushed_at":"2018-04-12T23:26:30.000Z","size":11190,"stargazers_count":165,"open_issues_count":0,"forks_count":38,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-12-21T12:45:04.384Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"p0w3rsh3ll/AutoRuns","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/charlessolar.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}},"created_at":"2014-04-26T01:30:16.000Z","updated_at":"2025-09-29T08:46:54.000Z","dependencies_parsed_at":"2022-08-04T05:30:20.430Z","dependency_job_id":null,"html_url":"https://github.com/charlessolar/DDD.Enterprise.Example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/charlessolar/DDD.Enterprise.Example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlessolar%2FDDD.Enterprise.Example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlessolar%2FDDD.Enterprise.Example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlessolar%2FDDD.Enterprise.Example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlessolar%2FDDD.Enterprise.Example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charlessolar","download_url":"https://codeload.github.com/charlessolar/DDD.Enterprise.Example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlessolar%2FDDD.Enterprise.Example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30404102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T21:51:19.558Z","status":"ssl_error","status_checked_at":"2026-03-11T21:50:57.892Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-12-18T05:44:40.773Z","updated_at":"2026-03-11T22:02:46.260Z","avatar_url":"https://github.com/charlessolar.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DDD.Enterprise.Example\n\n**2018 Update**\n\nI've made a much slimmer example of CQRS and EventSourcing here: [volak/TodoMVC-DDD-CQRS-EventSourcing](https://github.com/volak/TodoMVC-DDD-CQRS-EventSourcing)\nIt's about 1/4 of the complexity of this project **AND** it actually runs and does something trivial.\n\n**2016 Update**\n\nThe foundation of this solution is currently being used in my work - I am publishing an updated version almost a year after the initial Example repo because the foundation has changed a fair bit.\n\nUnfortunently I do not have time to make a working sample project that runs and does something trivialy useful.  Therefore this repo should not be expected to run - its merely an *example* of how I structured a horizontally scalable application.\n\nIf you want to try out a solution that compiles and runs checkout a [previous commit](https://github.com/volak/DDD.Enterprise.Example/commit/5a644536eaf241dd255639d6fe6d60bf35ae87d0) But even that solution will be difficult to setup right.  This project has always been more to demonstrate structure than provide working code.  When dealing with distributed applications I'm not sure if any project would be easy to download and run.\n\n**Original Readme**\n\nAn example architecture meant to be used for large deployments usable by enterprises.  Trivial examples from major projects leave some guesswork\non how to deploy for large organizations.  This solution demonstrates these concepts as applied for the enterprise.  \n\nThe architecture is designed for high-read low-write operations and follows DDD and CQRS standards for massive scale-out potential.\n\nProjects used in this example:\n\n- [NServiceBus](https://github.com/Particular/NServiceBus)\n- [GetEventStore](https://github.com/EventStore/EventStore)\n- [Aggregates.NET](https://github.com/volak/Aggregates.NET)\n- [ServiceStack](https://github.com/ServiceStack/ServiceStack)\n- [Riak](http://basho.com/products/#riak)\n- [Elastic](https://www.elastic.co/)\n- [RabbitMq](https://www.rabbitmq.com/)\n\n**Architecture Overview**\n\nProjects are organized according to the normal DDD layers.  You will find a Infrastructure, Domain, Application, and Presentation folders containing related projects.  The presentation layer is implemented as a WebApi meant to be used in conjuction with a web app or json client.\n\nCommands and queries are sent mainly to servicestack's web api endpoints which publish messages on rabbitmq to be processed by the Domain in the case of commands, or the application in case of queries.  Commands are read into the domain handlers who read the aggregates and entities needed from Eventstore and otherwise process the command.  If accepted the entities produce events which are recorded to the event store.  The application projects, currently Riak and Elastic, listen for events from the store and do their own processing to build read models which servicestack queries for.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlessolar%2Fddd.enterprise.example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharlessolar%2Fddd.enterprise.example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlessolar%2Fddd.enterprise.example/lists"}