I noticed it has RabbitMQ in "the caddy".
I used to have a problem with an infrasture team, they would alter a managed switch or restart the DNS server I used and RabbitMQ would start running slow.
The solution was to restart RabbitMQ, everything else deployed was fine.
The other issue I used to have was resource related, if you hit the peak connection limit on a box the erlang processes could become disconnected from the erlang runtime.
The results here are abit random, it might refuse all incoming connections, it might run slow. You can tell thishas happened because restarting the application fails. It will stop but processes persist and prevent a start.
Engineering is tradeoffs.
A command shell is focused on file operations and starting/stopping applications. So it makes it easy to do those things.
You can use scripting languages (e.g. Node.js/Python) to do everything bash does but they are for general purpose computing and so what and how you perform a task becomes more complicated.
This is why its important to know multiple languages, since each one will make specific tasks easier and a community forms around them as a result.
If I want to mess with the file system/configuration I will use Bash, if I want to build a website I will use Typescript, if I want to train a machine learning model I will use Python, if I am data engineering I will use Java, etc .