Closed TomPallister closed 6 years ago
cache manager done..
butterfly done..
Consul done...
pivotal done
rafty done..
administration / identity server done, just need to release new version of rafty with this dep
all done, lets see how this goes...if it gets too faffy will need to work out a way to work with ocelot source locally and packages at build time!
New Feature
[x] Butterfly [x] CacheManager [x] Consul [x] Pivotal.Discovery.ClientCore [x] IdentityServer [x] Polly [x] Rafty (this will need updating again after IdentityServer as it depends on identity server) [x] ServiceFabric (if i bring in libs, not sure if i do) [x] There are a bunch of other things we prob dont need so check these too
Motivation for New Feature
Ocelot has quite a few non core dependencies that could be broken out into package. As Ocelot grows we will get more and more dependencies so it feels like a good time to do this work now.
This will also speed up Ocelot build slightly, reduce cognitive load when working on Ocelot core but increase it when working on dependencies, not force people to take on dependencies they don't need, not give people dependency conflicts..e.g. one lib in their project needs consul 2 and Ocelot needs consul 1 etc. I mean that is still a problem but less so if they dont need consul for Ocelot!
I am also thinking of moving to some kind of plugins based system in the future, maybe these packages would just become plugins.
Long term goal for this is give entry points for people to write their own packages
e.g. a way to configure pipeline, and the right interfaces for them to implement.
Also might be good to have a monorepo rather than lots of seperate repos
How
I have already started doing Butterfly and this was pretty easy, stick an interface in Ocelot, implement it in Ocelot.Tracing.Butterfly, that takes a dependency on Ocelot for the interface.