The growing popularity of microservices has led to some interesting technical challenges for developers.
One of those is how all users access the same microservices regardless of device.
The average digital consumer owns 3.64 connected devices and switches between them throughout the day.
For example, a user may access the same content via a laptop at work and a smartphone while travelling.
An application that splits its components into microservices needs to provide consistent performance across devices.
To do that, developers funnel incoming traffic through a single “point of entry”: an API gateway.
Monolithic applications may be faster to build, but otherwise microservice architecture offers a lot of advantages.
Rather than designing one large application with everything in one data store, components of the application are divided into self-contained web services that communicate through HTTP or REST.
Developers tend to prefer to build large applications using microservices.
They’re simpler to test and refine. Also, since individual components can be scaled individually scaling is much easier.
Challenges of a Microservices Architecture
While it is an incredibly functional architecture style for building scalable apps, using microservices does add a level of complexity.
The client has to fetch data from several different services, which requires knowing where those services are in the first place.
The central problem is the one mentioned earlier, that users come to the application through a wide variety of devices.
Network performance varies widely due to device capabilities and connection type.
Each device needs a difference amount and style of data.
A desktop would get more details on a product landing page than a smartphone.
Also, some services may use protocols that aren’t usually accessible by all clients.
Consider an enterprise app that technicians use on service calls.
The app needs to access customer records, but that system could have a non-mobile friendly interface.
Benefits of an API gateway
API gateways solve most of these problems.
An API gateway is a “wrapper” that provides a single point of access to all clients.
It shouldn’t be confused with API management; the gateway can incorporate a management layer but it isn’t necessary.
The most obvious benefit of API gateways is that they insulate clients from internal partitioning.
Upon reaching the gateway, each client is met with the right API.
Clients don’t need to know the location every every microservice, and they can retrieve data from multiple microservices in one round trip.
If engineers need to rearrange or make changes to the microservices they can do so without affecting how clients interact with the app.
Microservices are popular because they allow developers to use their preferred technology or experiment with new technology.
API Gateways are what make that possible.
Engineers use whatever whatever protocols work best internally, then the gateway translates the client-facing web-friendly API to match internal protocols.
API gateways enable microservices to be more simple and focused, as well.
They handle common concerns like access control enforcement, so individual microservices are less complex.
Limitations of API Gateways
API gateways are necessary for microservice architecture, but they do come with some limitations.
They need expert configuration for scalable applications, and (while users of most devices won’t notice) there’s a slight increase in response time due to the extra network hop.
Greater overall structural complexity can lead to increased development time.
There are more moving pieces involved, meaning additional points of failure.
This is generally considered a good tradeoff for later scalability and performance.
API gateways enable agile, future-focused applications.
Scalability and flexibility are core values of strong digital strategy; using microservices leads to apps that are flexible enough to meet the ever-changing needs of modern enterprise.
Are you having trouble getting your field techs and the office on the same digital page? Concepta has experience building mobile fleet management and field service solutions that will save your leaders time and resources. Contact us for a free consultation!