1. you get concurrency and pubsub built in with no external dependancies.
2. postgres suppport out of the box. our entire deployment is just phoenix + postgres
3. creating a microservice is easy. create a genserver, add it to your application.ex -> DONE. no need to create a seperate repo. its already able to send and receieve messages from other parts of your monolith using the built in pubsub system
4. Oban, the background worker library uses postgres.
end result is that as a small team, we are able to knock out a lot of features and scale it without any of the complexity most startups have. Its been 4 years and only now we are starting to consider bringing in an external message queue.