We use services which use our location information to improve user experience on daily basis. Location-based services are well defined and can be built based on several existing architectures, especially in the form of a monolithic solution. Poor scalability and inability to handle immense loads are problems which existing architectures face today. Existing architectures also don't provide an option to define and develop location based APIs. In this master thesis we defined an architecture which allows the definition and development of APIs that respond based on user location. Key feature of the API is access control and adjusting functions based on user location. We based the architecture on microservices with the aim of achieving elastic scalability, high availability, understandability and decoupling. By using microservices and other architectural design patterns we designed an architecture which uses cloud concepts and enables high horizontal scalability. We validated the success of the architecture design by verifying the possibility of implementing an REST API with different behavior depending on the user location, the possibility of automatic scaling of microservices in the cloud and by verifying the design patterns.
|