nats-io / nats-connector-framework

A pluggable service to bridge NATS with other technologies
Apache License 2.0
33 stars 9 forks source link

Break into multi-project #17

Closed pires closed 8 years ago

pires commented 8 years ago

Problem

With one project to rule them all, we'll have:

  1. Dependency hell, exclusions everywhere for famous libs, i.e. Guava, Netty.
  2. Continuous-integration, and artifact versioning/publishing is harder
  3. Possible merging issues and confusing commit log

    Possible solutions

    • Multi-module Maven project, one module per connector. [Fixes 1 and improves 2]
    • Multi-repo, one per connector. Still, one parent POM should be used. [Fixes all]

@mcqueary @ColinSullivan1 please discuss!

ColinSullivan1 commented 8 years ago

@pires - Thank you, we were planning on doing this. I think the second approach (multi-repo) is a good idea.

mcqueary commented 8 years ago

I agree with multi-repo with parent POM.

ColinSullivan1 commented 8 years ago

@pires, I've refactored a bit - NATS now supports a connector framework (this repository), which other projects can use to create new connectors. Other projects can specify the maven coordinates provided to include the NATS connector framework, now found in the sonatype repository. I've separated out the Redis connector as the NATS Redis Publish/Subscribe Connector. This avoids any github/project dependencies between the connector framework and implemented connectors.

pires commented 8 years ago

Awesome! So we can close this?

ColinSullivan1 commented 8 years ago

We can close this. ;)