How would you design a message queue-based architecture for push notifications and asynchronous processing?