An API-first methodology for designing a microservice-based Backend as a Service platform
Over the last several years, cloud computing has imposed as a major paradigm in software development by providing computer resources over the Internet. Among various cloud service models, Backend as a Service (BaaS) stands out as a model that targets the specific needs of web and mobile developers. By providing the backend for applications, it facilitates and expedites the software development process. In order to prevent major problems with the use of third-party BaaS providers, this paper advocates building your own BaaS platform, as well as several works ahead of it. However, the development of a BaaS platform carries various challenges regarding architecture and design. This paper strives to define the core service offerings of a BaaS platform and propose a method for providing an architectural design of a BaaS platform based on a microservice architecture. Microservice architecture is the preferred architectural style for cloud solutions since it promotes loose coupling, ease of scaling and integration with third-party services, which are fundamental stipulations of BaaS platforms. The methodology adopted in designing a microservice-based BaaS platform was formed in accordance with an Application Programming Interface (API)-first approach, which strives to design a suitable, representative API of the platform. To the best of authors’ knowledge, this paper proposes the lowest-level design of a BaaS platform so far, describing the entity relations, integration patterns, and communication styles. Ultimately, the proposed design was implemented and tested for its functional requirements. In that regard, specific test cases that mirror the actual workflow of the BaaS platform were constructed.