Even though you can scale out with multiple consumers on the queue, they will all contain the same functionality, and this is done just to handle load and process messages in parallel, in other words, it doesn’t allow you to kick off multiple independent actions based on the same event. All the processors of of the queue messages will execute the same type of logic in the same domain. This means that the messages in the queue are actually commands, which is suited towards imperative programming, and not an event, which is suited towards reactive programming.
The pattern is so simple and powerful that it may become a bit overused in time; it is particularly useful when we need a place to define complex actions, processes with many steps, callbacks or interactions with multiple models which do not fit anywhere else. Service objects are also commonly used to mitigate problems with model callbacks that interact with external classes (read more…).
Company values provide basic operating principles for teams and employees. Although their goal is to align everyone in one direction, they leave plenty of freedom for adaptation into specific environments. For example, one of Pusher’s values is “dream big, start small”, which encourages chasing big problems but starting with minimal solutions.
Yeah I have nothing against full stack developers. I just like to keep in mind the old quote “jack of all trades, master of none.” In other words, you can only carry the full stack terminology so far. There’s a certain point I hit where I thought of myself as “full stack,” when I felt like I could build 3-tier CRUD applications in my sleep, and that’s all anyone was really doing (that I knew anyway). Then there came a day where I began (unknowingly) moving into backend development and really grappling with scale in distributed systems and found there was this whole world of things to learn. Meanwhile there was an explosion of front end developer tools and methodologies: SPAs, PWAs, etc. Lots to learn there, and I realized I needed to trade off breadth for depth. Your mileage may vary!