qsu

Why is qsu opinonated, and what is it opinonated about?
Login

Why is qsu opinonated, and what is it opinonated about?

Service subsystems can be complicated and offer a lot of features. Even systemd services, which are relatively simple compared to the Windows Service subsystem, has a lot of features and service integration possibilities.

It is not the goal of qsu to be able to express every type of service, its goal is merely to facilitate the development of some hand-wavy "normal" service, where the developer should minimally need to worry about platform/subsystem specific integrations. In order to accomplish this it makes a few assumptions:

Agnostic to the developer, but idiomatic to the end-user

While it's a goal to provide a simple and unified developer experience when writing service applications (regardless of the service subsystem the application is run on top of), the same is not true from the end-user administrator's perspective. It can be very annoying when foreign idioms are brought into a system -- it's not unreasonable to assume that people want new programs to behave like all the other programs they are accustomed to on their platform.

As an example, Windows administrators will likely expect certain service configuration parameters to be stored in the registry, under the service's reguistry subkey. qsu caters to this, and this will inevitably bleed into the developer's domain -- but the goal to limit subsystem-specifics as much as possible for the developer, while enabling idiomatic behaviors for the system administrators.