Posts

Enabling Communication Between Microservices: Why You Need Messaging

Deploying microservices in a distributed environment can present a number of challenges, chief among them being the challenge of getting chatty microservices to communicate effectively. The more you scale your system (load and connections) within and across different environments, the harder this challenge can get, especially if you’ve started with a REST-based communication pattern. Using messaging to enable communication between microservices, however, can help you overcome these challenges and provide several key benefits.

The 5 key benefits of messaging when deploying microservices:

  1. Simple, scalable connectivity
  2. Simple, high availability
  3. Simple producer/consumer scalability
  4. The enablement of publish/subscribe, message filtering, routing and fanout
  5. Message rate and consumer availability decoupling

You may be wondering how REST/HTTP-based communication stacks up against messaging in enabling these benefits. In short, REST is an alternative to messaging and can deliver benefits 1-3 (above), but it doesn’t enable benefits 4 and 5.

Let’s take up each benefit in turn, and we’ll cover the REST vs.… Read the rest

How to Maximize Microservices by Combining Messaging, REST and Webhooks

One of the real pleasures of my job is working with customers to understand their use cases, design decisions and architecture. Recently I’ve been having a lot of conversations about how to maximize microservices so that they communicate with each other – it’s a fascinating process that usually starts with REST and goes down some interesting roads when real-world requirements and constraints come into play.

For example, one of my customers was leveraging a microservices architecture to implement persistent request-response style interactions from their customer-facing user interface (UI) into their CRM/ERP system and database layer. It sounds simple: a typical enterprise integration pattern for intra-process communications, but, of course, these things never are.

In this case their UI used REST, the CRM/ERP system relied on a PHP module to interface with the outside world using a Webhook-style integration, and between them sat a validation and enrichment module that had been written in Node.js.… Read the rest

low-latency microservices

How to Unlock Low-Latency Microservices with Pivotal Cloud Foundry and Solace

So you’re excited and ready to unlock low-latency microservices. And you’ve chosen Pivotal Cloud Foundry as the foundation for your microservices and digital transformation.

You’ve broken down your monolithic e-commerce application and created a new environment composed of small, independent, single purpose microservices. Time for a well-earned swig of that single malt whiskey you’ve been saving for just the occasion, right? Sorry, not just yet.

Because now you’re watching load and latency increase with spikes in usage—is it Black Friday? User experience is suffering! Messages and transactions are getting lost! You’re not going to meet your SLAs! How and why is this happening?

Microservice architecture patterns and latency challenges

You’re not alone. Many organizations are leveraging microservice architecture patterns to build their next-generation enterprise and deliver business value at a faster pace, but they’re realizing that maintaining responsiveness at scale can be tricky. When it comes to building out low-latency microservices, it’s important to step back and consider what will happen under heavy loads.… Read the rest

Production-ready Microservices using Spring Boot and Cloud Foundry

How to Create Production-Ready Microservices with Spring Boot and Cloud Foundry

Solace makes it easy to implement production-ready microservices using Spring Boot and Cloud Foundry.

Write Once, Run Anywhere (WORA) was a slogan coined by Sun Microsystems to illustrate the cross-platform benefits of Java.

While in many cases Java lived up to this promise, today we need to Write Once, Deploy/Scale Anywhere.

The bane of many developers (including myself) is the inability to inject operating environment properties into applications. This problem becomes even more pronounced when trying to develop production-ready microservices in the most agile way possible.

Why? Simply put, there are external dependencies (such as messaging) whose information can only be known at runtime.

Imagine creating a simple Spring Boot application that runs on your laptop. This application receives product information from a JMS Queue, does an inventory query and republishes the data to a JMS Topic. Everything works fine so it’s time to integrate it into your Cloud Foundry development environment and let it live in the broader enterprise ecosystem.… Read the rest

Message Exchange Patterns for Event-Driven Microservices

Whether organizations turn to microservices to solve issues with existing applications or build greenfield applications, creating applications that consist of many single purpose microservices introduces the need for those individual services to interact in real-time to provide value to the end user.

Today REST is most commonly used for these interactions, and it works fine for some situations, but as discussed in my previous blog post there are many advantages to using messaging instead, not the least of which is the ability to use a wide range of synchronous and asynchronous message exchange patterns.

Note: I explored this topic on a deeper level in my latest guide:

These patterns, such as publish/subscribe, request/reply, one-way notification and multi-request/single-response have been a staple of enterprise architecture for many years, and they are ideal for microservices since they are inherently distributed. To prove this point, lets look at  problem.

A Real-World Example: Meet Sol-Beer

The problem I have chosen to solve is near and dear to my heart (as I hope it is to yours!).… Read the rest

Webinar Recap: Microservices in Practice

Microservices are extremely popular these days, and for good reason. They provide a blueprint that make it easier to create robust and scalable applications. During a webinar called “Microservices in Practice” (which you can watch here), Jonathan Schabowsky of Solace’s office of the CTO demonstrated how important the right choice of communications between services really is.

As you might expect, REST was the opening topic. But REST has some limitations that any architecture needs to consider. Jonathan described the challenges in interaction cardinality of synchronous and asynchronous, and how the wrong choice can lead to tightly coupled architecture. During the talk, a poll of the viewers found that 71% felt that asynchronous delivery is very important.

Jonathan then highlighted a few desirable characteristics for microservices: scaling, fault tolerance, performance, management and security. Using personal experience, he guided participants through the role each of these items plays and how to achieve them.… Read the rest

Solace Says: Enabling Event-Driven Microservices

In this edition of Solace Says, I interviewed Jonathan Schabowsky of Solace’s office of the CTO, who recently wrote a blog post about event-driven microservices that’s turned out to be quite popular. In that post, and this video, Jonathan describes the characteristics most microservices share, what they’re commonly used for, and how they share information with REST and/or messaging technology.

Read the rest

REST vs Messaging for Microservices – Which One is Best?

Microservices are extremely popular these days, and for good reason. They provide a blueprint that makes it easier for developers to repeatedly create robust and scalable applications. While there is no official industry-adopted definition of microservices, there are some generally accepted attributes that make up a microservice:

  • Small and single in purpose
  • Communicate via technology agnostic protocols
  • Support continuous integration
  • Independently deployable.

Many of these attributes are interrelated – since services are to be small and single in purpose, they must communicate with each other to provide real business value, and to be independently deployable they need to be small and single in purpose. While each of these are vital attributes, the ability to communicate without being tightly coupled to one another is a critical aspect of microservices architecture.

Note: For a deeper read you can take offline, get our latest paper on event-driven microservices:

Smart Endpoints and Dumb Pipes

Well-known author and developer Martin Fowler advocates what he calls “smart endpoints and dumb pipes” for microservices communication.… Read the rest

Webinar Recap: Solace: Messaging with Purpose on Pivotal Cloud Foundry

On May 30, Solace Senior Architect Jonathan Schabowsky explained how messaging and microservices work with Pivotal Cloud Foundry as part of a Brighttalk webinar. He provided a great introduction to the concept of microservices and then dove into the details of architectural considerations.

As part of that he covered how Platform as a Service (PaaS) makes it easier to deliver on the microservice promise by eliminating some of the distractions that app developers face while providing a “deploy anywhere” capability. But, as Jonathan covers, “deploy anywhere” comes with its own headaches around communication and data movement.

Jonathan dug into a comparison of REST and other open protocols, like AMQP and MQTT. One of his comments (often mentioned in technology) refers to the fact that not everything is a nail to the REST hammer. Fortunately, we find out that there are a lot of different tools available in the Solace toolbox. You can find even more on microservices on the Solace dev site and find code, demos and more examples on the Labs site and Github repositories.… Read the rest

Events

Nothing Found

Sorry, no posts matched your criteria