Types of Java applications
In this unit, we'll distinguish between the different types of server-side Java applications to help you choose a matching cloud solution.
Monolithic applications
A monolithic application is an all in one solution that still fits for many projects. A monolithic application is a good start for prototyping and startups. It's simple to develop, debug, test, and deploy.
Traditionally, monolithic applications run on application servers and scale the entire application as a whole.
Microservices
In order to succeed today, businesses are asked to adapt, fail fast, and expect the unexpected. To achieve a reduced time to market, more engineers get hired. However, the outcome might be the opposite. More engineers might result in a higher time to market, because you have more communication effort when more engineers need to collaborate. The solution here is to divide and conquer.
In a cross-functional team, you can deliver features as independently as possible. Each team should be responsible for its own dedicated part of the software.
Batch jobs
Some applications are intended to run briefly. They execute a particular workload, then exit rather than wait for requests or user input. Batch jobs are a solution for this use case. Even though some batches can last for hours, sometimes jobs need to run once or at regular, scheduled intervals.
Serverless architectures
Functions are executed only on an event. A function is "triggered" by a specific type of event. Supported triggers include responding to changes in data, responding to messages, running on a schedule, or receiving an HTTP request.