11 karma · joined December 5, 2022
Called it Ductape cos most of people use Duct tape to join things together and it's what this does.
What I've tried to do is instead of hardcoding backend logic into each service, such as database operations, notifications, message queues, or third-party API calls, you define it once and move all environment or provider-specific details, such as credentials, endpoints, and retries, into a config.
Your services don’t need to know how the logic works. You can reuse the same component across projects and environments without duplicating code. And if you need to switch providers or move to a new environment, you update the config, not the code.
I don't know if anybody finds it useful or thinks it's special in anyway. I'd appreciate some feedback.
Thanks!
https://www.ductape.app/use-cases
Can you explain what you mean by opinionated? We've tried to make this as flexible as possible
They all have to handle authentication, retries, error handling, and webhook processing separately. You have to manually configure and update and test across envs.
So if you want to make a change, you'll have to go into each service and rework the integration logic.
With Ductape, instead of embedding provider-specific logic in every service, you write it once and configuration files handle the differences between environments and providers. So you can use same logic across your billing, subscription, and checkout services without duplication.
If you want to switch providers, you don’t touch the logic at all. You just update the configuration.
For example instead of putting Braintree or stripe code in every service, you write one chargeCustomer() function in Ductape and call it from anywhere. If you want to switch to another provider, you just change a config file, not your code.