Instead of having a monolithic code base that caters to many concerns, you can instead break the application down into many services which, when working together, make up the whole application. Each service should:
- Have one or very few concerns
- Be de-coupled from other services
- Be stateless (if possible)