On The Design of SLA-Aware and Cost-Efficient Event Driven Microservices