Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Break down the project #132

Open
peske opened this issue Jun 19, 2016 · 0 comments
Open

Break down the project #132

peske opened this issue Jun 19, 2016 · 0 comments

Comments

@peske
Copy link

peske commented Jun 19, 2016

Guyz, I strongly believe that it is the time to break the project down to smaller pieces. There are two "groups" of features that can (and should) be managed as a separate projects. The first group is made of mandatory parts that still can be isolated like:

  • ConcurrencyUtils
  • HdrHistogram
  • LibLog

The second group is made from optional parts:

  • ElasticSearch
  • InfluxDB
  • Graphite
  • Even Json

What I'm trying to say is that you should make something like:

  • Metrics.NET.Core
  • Metrics.NET.InfluxDB
  • Metrics.NET.ElasticSearch
  • etc.

Basically Metrics.NET.Core should be able only to report to console window; for additional reports one can pick the appropriate additional module.

There are few strong reasons for doing so:

  • The project will be much easier to manage, with clear boundaries;
  • Changing some optional feature (for example Metrics.NET.InfluxDB) will not cause changing version of the core. Basically if managed separately, an optional module would not prevent / slow down releasing the core module.
  • Any kind of a bug or poor implementation in one module (again for example in Metrics.NET.InfluxDB) will not influence the quality of the core;
  • Installed footprint would be smaller;
  • Some improvements (for example .NET Core version) would be easier to implement. You wouldn't have ensure that everything is portable - instead you can do this step by step (module by module)

Thanks!

@peske peske mentioned this issue Jun 19, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant