Previous discussion: https://news.ycombinator.com/item?id=26398960
Thanks!
11–20 of 181 posts
Previous discussion: https://news.ycombinator.com/item?id=26398960
Thanks!
I think this sentiment is a partial cause of the trend towards self-hostable, downloadable software too. The customer has a cost when they operate a library instead of consume a service, no doubt. They also get more control (no surprise upgrades, availability is their responsibility) and assurances (no worries about the service suddenly being end of lifed).
When you use an outside service, they might break your system at a time of their choosing.
Related: Who Does That Server Really Serve? https://www.gnu.org/philosophy/who-does-that-server-really-s...
I'm not going to run my own mail server in 2023, etc.
Is this really a common scenario where there's a choice between these 2 options that isn't obvious? I've never considered libraries and services to be two equal options of distributing functionality, and you just pick one of them. It's usually a function of practicality and monetization.
In my experience, no, it isn't any common. But it is somewhat common for people to ignore the obvious option and go for services anyway.
And Polylith for better reuse across projects generally.
I think this sentiment is a partial cause of the trend towards self-hostable, downloadable software too. The customer has a cost when they operate a library instead of consume a service, no doubt. They also get more control (no surprise upgrades, availability is their responsibility) and assurances (no worries about the service suddenly being end of lifed).
When you use a library from an outside source, if you update that library, it might break your build. When you use an outside service, they might break your system at a time of their choosing.
As always, it depends. Questions I'd ask:
* How critical is the software to your application's proper functioning?
* How big is the team?
* Who are your customers and what are customer expectations around your application's proper functioning?
* How often does the library change?
* What expectations does a service set around backwards compatibility? What commitments are made?
Yeah but then who is responsible for maintaining the library? If you have a bunch of internal teams that depend on your library and there is an issue or a feature request, you're back to the same position of being the one that does the work to implement. Better to have a service IMO, you can get telemetry out of it and scale it out or replace internals without having to worry about who will get affected.
Related: Who Does That Server Really Serve? https://www.gnu.org/philosophy/who-does-that-server-really-s...