Giter Site home page Giter Site logo

thecodemasterzz / ddd.enterprise.example Goto Github PK

View Code? Open in Web Editor NEW

This project forked from charlessolar/ddd.enterprise.example

0.0 2.0 0.0 10.95 MB

An example of an enterprise-ready architecture built with NServicebus, GetEventStore, RabbitMq, and ServiceStack

License: MIT License

C# 99.98% ASP 0.02%

ddd.enterprise.example's Introduction

DDD.Enterprise.Example

2016 Update

The 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.

Unfortunently 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.

If you want to try out a solution that compiles and runs checkout a previous commit 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.

Original Readme

An example architecture meant to be used for large deployments usable by enterprises. Trivial examples from major projects leave some guesswork on how to deploy for large organizations. This solution demonstrates these concepts as applied for the enterprise.

The architecture is designed for high-read low-write operations and follows DDD and CQRS standards for massive scale-out potential.

Projects used in this example:

Architecture Overview

Projects 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.

Commands 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.

ddd.enterprise.example's People

Contributors

charlessolar avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.