Monolith to Microservices: 6 principles for decomposing a monolith