As a continuation to my previous article on tech buzzwords, in this one, I will further share useful resources for learning about concepts like Spring Boot, GraphQL, SaaS, and Serverless. Let’s get started ⏩
Spring Boot
This framework allows easy creation and management of a Spring-based application. Usually, Spring projects require configuration that might be too tedious to do. Spring Boot helps make this part easier, as there is less configuration the developer or tester need to do. Additionally, by using Spring Initializr, a brand new Maven or Gradle project can be created, and the required dependencies are added to it.
The best way to see and understand the benefits of using this framework, and to see how easily you can create a working application, is to build your first Spring Boot application using the official documentation 📄
Further interesting resources on this topic:
- Consumer-Driven Contract Testing using Spring Cloud Contract
- Using Spring to Switch Environments in Automated Tests (An article I wrote) 😉
- Spring Boot 2 0 Web Applications
- From Zero to Hero with Spring Boot
- Test Driven Development with Spring Boot
GraphQL
Classic API querying works as follows: when a request comes in on an endpoint, a response is being sent to the client making the request. In many cases, the response contains too much information. The client would only need a subset of the entries the response contains.
GraphQL helps with this task: the client can request only certain information to be returned in the response from an API. In order to do that, there is work that needs to be done both on the client and the server side. An even more powerful feature is the retrieval, using only one request, of not only the data normally received on an endpoint but also data related to it. This would otherwise be retrieved by performing additional API queries.
Some good guides on how to use GraphQL can be found here:
- The GraphQL series on the TestProject blog includes the aspect of testing a GraphQL API:
SaaS
Software as a Service is a term referring to functionality offered to a customer who accesses it on the Internet, usually by means of a website 🌐 or a phone app 📲 The client does not need to install any software and does not need to have hardware infrastructure to host the service.
It is the job of the service provider to host and run the software the customer needs (either on their own hardware or in the cloud), but also to constantly update it and provide new functionality. In return, the customer pays a fee and can start using the service, without caring about the underlying infrastructure, maintenance, or availability.
Serverless
In a serverless model, a service provider only needs to focus on creating the service it wants to provide to the customers. The service provider will not deal with the infrastructure on which this service runs. They do not need to own or configure the hardware, servers or VMs used for running the service. Instead, they will pay a provider to host the infrastructure where the servers will run 🏃♂️ The payment is made according to the usage of the required resources.
Since the service provider does not have access to the servers where everything runs, they will not be involved in how scaling of the infrastructure is done. Yes, there are servers behind the scenes. And they will have high availability, without the hassle for the service provider to assure it. Basically, the service provider will pay a fee in order to have access to high-performing, automatically scaling infrastructure.
Further resources on this topic:
Be familiar with the tech buzzwords!
But more importantly, don’t forget to learn what stands behind their meaning 💡