Mesos is being used at Atlassian to decompose monolithic Java applications into stateless microservices running in containers on Mesos. Initially Marathon and custom services were used but led to issues. Iteration 2 used Marathon for service discovery but upgrades caused interruptions. The current approach uses Mesos, Aurora for service discovery and management, and a load balancer manager. Key challenges include handling multiple regions, running historically stateful applications statelessly on Mesos, and testing services.