Skip to content

osstotalsoft/nbb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NBB CI

.Net Building Blocks

Building blocks

Our philosophy

Build cutting-edge, cloud-ready, scalable, maintainable and fun LOB services with .Net Building Blocks

Combining domain-driven design tactical patterns with clean architecture by decoupling the business model and use-cases of the application with the rest of the technology and infrastructure, you get a technology-independent, hand-crafted, stable, encapsulated business model that will evolve over time, regardless the UI, Database, Messaging or other infrastructure or technology.

Applying concepts from EDA, CQRS or ES we decouple furthermore the business domain from the read-side so that the domain would not change when the UI views needs to change.

Applying concepts from the Microservices architectural style, you get a new beginning with every new bounded context (module).

Architectural considerations

The goal of software architecture is to minimize the human resources required to build and maintain the required system.

-- Robert C. Martin

With NBB you can power a great diversity of architectures from a Monolithic one to a Multi-Container Microservices based one. It is important to mention that NBB does not impose any kind of architecture.

This repo contains a sample Microservices application decomposed around three bounded contexts: Contracts, Invoices and Payments. They are autonomous and the integration is based on events delivered with NATS. The sample application contains scripts for building CI / CD pipelines for docker-compose or kubernetes.

The blocks

  • NBB.Core - core abstractions and functionality that other packages rely upon
  • NBB.Application - application layer specific functionality
  • NBB.Domain - building blocks for domain modelling in DDD
  • NBB.Data - data access abstractions and implementations
  • NBB.Messaging - distributed application infrastructure that enables loosely-coupled, message-based asynchronous communication
  • NBB.EventStore - event store functionality
  • NBB.Correlation - facilitates the grouping of all requests, messages, logs, and traces belonging to a business flow
  • NBB.ProcessManager - a way of orchestrating your events
  • NBB.MultiTenancy - building blocks for multi-tenant applications
  • NBB.ProjectR - functional style read-model projections inspired by Elm

The samples

Please see our samples folder to get you started with various architectures built with NBB.

The templates

NBB templates is a collection of custom templates to be used by the dotnet cli (dotnet new command).

License

NBB is licensed under the MIT license.