Why so many *arr services? Why not 1 service that works with all media types?

YorddleZiggs@lemmy.dbzer0.com to Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ@lemmy.dbzer0.com – 126 points –

I am almost done building my first self hosted streambox through Docker. That's a total of 16 instances, each fulfilling 1 specific role.

As I'm new to the *arr world, could you please help me understand why it is standard to deploy multiple *arr services for each media type (ex: readarr1 for books + readarr2 for audiobooks) instead of using 1 that does multiple media types?

Thank you.

37

You are viewing a single comment

That's because of the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.

When I was an up and coming Unix admin, the senior admin told me it was all about "little tools for little jobs", and the OS lets you string them together into whatever solution or outcome you need.

That was nearly 30 years ago. Still holds true today.

*arr apps don't do one thing.

  • They cook their own authentication system.
  • They manage trackers, indexers, etc.
  • They download files automatically.
  • They track upcoming releases.
  • They rename files automatically.

*arr apps don't do one thing well.

  • They require extensive configuration due to insensible defaults.
  • They require manual intervention from time to time even with a good configuration.
  • They can't even fulfill their purpose. Bazarr shits the bed with anime.

*arr apps don't handle text streams.

But I think the Unix philosophy is flawed anyways. It's like the metaverse: When a metaverse succeeds, they attribute that success to the metaverse as a concept. When a metaverse fails, they attribute the failure to that metaverse, not the metaverse as a concept. Now substitute metaverse with unix utility and the metaverse as a concept with the unix philosophy.

You’re taking it too literally, and missing much of the nuance between philosophy of design and actual implementation details.

The movies app manages movies. That’s its one thing. No need to overcomplicate it. Unix ‘find’ for instance, finds files. That’s its one thing. ‘find’ also lets you filter the results, but that doesn’t change its purpose of finding files.

The fact that *arr apps don’t do things, or are bad at things, has nothing to do with the Unix philosophy. Were these apps combined into a monolith, the same issues would need to be addressed.

There is no right or wrong in a design philosophy. It’s all trade offs. I don’t know anyone who says Unix (or the metaverse) is successful because of a design philosophy. What matters is what you deliver.

There is literally not one singular(!) arr that does what you're claiming, at least that I'm aware of. The indexing is done by a different thing than the tracking and the downloading.

That's why you end up with 16 of them like OP after all...

Yeah, sonarr and radarr support some indexers but I ended up just setting up Jackett. They both use those indexers to search, but in different ways. They also don't do the file downloading, your separate download client does that. They do both track future releases and rename files, but the way that works conceptually for movies and TV shows is pretty different since Movies are singular pieces of media while shows are broken up into seasons and episodes. They work with different data structures and so have to parse and present in different ways.