Published Mar 16, 2022Updated Oct 26, 2022
Contribute to Docs

Middleware is software that connects applications together. The term “middleware” comes from the fact that this software sits between the front-end, or client-side, of an application and the back-end, or server-side, where the resources are being requested.

Types of Middleware

Data, APIs, software tools, and other applications are connected by middleware in order to bring a complete or bundled application to the end user. There are many types of middleware software depending on the use cases. Some of the most commonly used middleware are listed below.

Message Oriented Middleware

A message oriented middleware, or MOM, allows applications to exchange messages and communicate with one another. This middleware offers ease of use but can be costly at larger scales.


RabbitMQ is a messaging broker platform used by applications to send and receive messages.
IBM MQ is another example of message oriented middleware. Some of the core components include messages, message queues, and queue manager.
Amazon SNS
Amazon simple notification service is a way to manage messaging between applications and users.

Database Middleware

This type of middleware gives access to databases and provides points of interaction between a variety of databases. This middleware improves efficiency however it can be language specific which can create limitations.


Open Database Connectivity is an API used for accessing database management systems.
Java Database Connectivity is an API that uses Java to access databases.

API Middleware

This type of middleware provides developers with the tools to create and manage APIs used in applications. While it offers scalability, connections can be slow when dealing with different servers.


API management platforms
API management platforms allow developers to access, control, and analyze APIs.
API gateways
API gateways provide services related to user authentication and rate limiting.

All contributors

Looking to contribute?

Learn More on Codecademy