Do take a look at my Work(open sourced ones) On Github -
I. An ASP.Net MVC 4 application using the most popular NoSql database MongoDB, the distributed and schema-less
search engine ElasticSearch, distributed caching solution Redis and the messaging middle-ware RabbitMQ at my code
repository on github here. For better understanding about setting up and running the application, do take a look at my
video series on youtube. Some architectural highlights of the application are as -
1) A generic repository pattern with MongoDB, with illustrated scope of extensibility; the base framework(MatrixCore)
can be directly plugged into any application.
2) Full fledged dynamic predicate building, paging and a complete auditing support.
3) IoC containers have been used for dependency injection. There is flexibility to switch the containers between Autofac
and Unity by flipping a flag setting in web.config file.
4) Using ElasticSearch server for full text searching in product catalog(client used is the all popular NEST). The base
framework(MatrixCore) also provides core support for ElasticSearch repository pattern.
5) Using RabbitMQ server for message queuing(polymorphic pub/sub and RPC based async request/response
patterns) for certain operations such as saving critical data into MongoDB and subsequently indexing documents into the
search engine(keeping database and search engine in sync). The client used is EasyNetQ that runs on top of RabbitMQ's
.Net driver.
6) Using Redis for distributed caching.
7) Featured flag settings to roll out new functionalities and conducting experiments in production with minimum risks.
8) Automatic failover support for MongoDB and ElasticSearch is built into the core framework.
II. A sample application for understanding basic usage(pub/sub and reuest/response patterns) for RabbitMQ with .Net here.
III. Also take a look at Lucene IndexWriter and Searcher helper objects and RavenDB(a .Net based NoSql database) session factory builder object on github here.