A sufficiently complex Elixir project tends to end up including multiple apps (maybe under an umbrella), shared code, domain specific metrics, logging, middleware.
In addition, people also tend to wrap some frequent dependencies (e.g. brokers like RabbitMQ) with custom, higher level apis.
I’ve been wondering for a while if there are reusable, higher level components hidden in all of this. The counterpoint would be that as they always slightly differ from project to project, trying to generalise them may end up being just a waste of time.
What’s your experience on the matter? Where do you draw the line? How often do you extract and package (not necessarily as OSS)?
A sufficiently complex Elixir project tends to end up including multiple apps (maybe under an umbrella), shared code, domain specific metrics, logging, middleware.
In addition, people also tend to wrap some frequent dependencies (e.g. brokers like RabbitMQ) with custom, higher level apis.
I’ve been wondering for a while if there are reusable, higher level components hidden in all of this. The counterpoint would be that as they always slightly differ from project to project, trying to generalise them may end up being just a waste of time.
What’s your experience on the matter? Where do you draw the line? How often do you extract and package (not necessarily as OSS)?