The beauty of open source is that it’s open. It’s open for extension, and it’s open for contribution.
A recent experience with OpenFeign is a good example of how you can have a third party library and also have it do what you want.
I wanted to get the deployment size of an AWS Lambda down, so considered using a smaller JSON processing library than the full blown Jackson. This needed a new plugin for OpenFeign, so it could deserialize the JSON coming back from a webservice.
So, I wrote the missing plugin in our codebase. I got something working for us, and then I could have moved on… but I didn’t.
I then went to the OpenFeign codebase and attempted to submit my new plugin as an addition to the library. In order to meet their standards for coding, testing and documentation, I made my own plugin better.
Even if they hadn’t accepted my change, the code was at a high quality because I had tried to make a submission to the main library.
As it happens, they accepted my change.
A few weeks later, the change is part of the latest release of OpenFeign. At this point, I ditched our local copy and migrated to the published version. From now on, we’ll even get fixes and updates from the rest of the community, should they come about.
With open source, you get way more than you give.