Skip to content

R0bari/RateService

Repository files navigation

RateService

Brief

The project aim is to consolidate theoretical knowledge in software arhitecure development after reading the Martin's book "Clean Architecture".

Just realised the pros of onion architecturing style. Going to applicate it to some further projects where it will be appropriate.

Current architecture

The main idea of this architecture is independency of domain from implementation details. Currently interface IContext is defined in Domain and Database contains MongoContext implementing this interface. Due to DI Domain doesn't know what implementation of IContext it uses, it would be quite easy to change MongoDb to MySQL for example. Moreover different application interfaces can inject different implementations of IContext. For example, WebAPI can use MongoContext while for background services it's enough to store information on disk and that's why they don't require DB implementation of IContext and implement MemoryContext.

Further plans

Upcoming plans include:

  • adding tests for background services;
  • moving Mediatr from DomainServices to gain possibility to change the implementation of CQRS part;
  • sticking all implementation of injected instruments (such as Mongo, Mediatr) to single project. It will simplify dependencies for existing application interfaces.

Summary

Architecture development is a very interesting part of Software Engineering. It's worth to understand the advantages and disadvantages of each concrete achitecture style before chosing it for a new project.

About

WebAPI training on currency rate service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published