Skip to content

crazyants/NetFusion

 
 

Repository files navigation

image

Composite Plugin Microservice Architecture

Great things are done by a series of small things that are brought together - Vincent Van Gogh

Build status

image

Problem

As more developers move towards implementing Microservice based solutions, it is important for these services to be quickly created and consistently configured. Also, it is important that the overall structure be consistent between all Microservices that are part of a solution. If not, each Microservice will vary overtime and become difficult to maintain and extend.

Solution

NetFusion is a library enabling consistently between Microservices by providing the following:

  • A well defined plugin bootstrap process.
  • Provides an implementation of the CQRS pattern that can be extended.
  • Designed around Microservice architecture best practices.
  • Suggests a solution structure based on Domain-Driven-Design (DDD) best practices.
  • Has a core implementation not dependent on any open-source technologies.
  • Introduces new technologies and open-source libraries by extending the core with plugins.
  • Very loosely coupled. Only those plugins that a given host application utilizes are referenced.
  • Provides a consistent methodology for unit-testing.
  • Allows a complete Microservice to be build in seconds by providing a custom .NET Core CLI project template.

Outcome

  • Allows developers to focus on the domain of an application since technology concerns are encapsulated within reusable plugins shared between applications and developers.
  • While the use of the CQRS implementation is not required, it provides a common message pipeline that can be extended by technology specific plugins such as RabbitMQ.
  • Easy to use from the .NET Core Generic Host since the outcome of the bootstrap process is the population of the IServiceCollection with services provided by plugins.

Lets Get Started!

The Wiki documentation is ordered so each topic builds on the prior. Each section discusses a specific topic with step-by-step code examples. The topics use the solution generated by the nf.micro-srv template for discussion and as a starting point for implementing examples. Before starting any of the topics, it is suggested that the section titled Microservice Solution Template! is followed to create a starting Microservice solution using the dotnet CLI. This solution can then be opened in the development IDE of your choice.

About

Plug-In Architecture - Linux, Windows & MacOS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 75.1%
  • TypeScript 14.6%
  • HTML 8.3%
  • CSS 1.0%
  • Shell 0.6%
  • JavaScript 0.2%
  • Dockerfile 0.2%