Navigating Microservices and Successful Implementation

Transitioning to microservice architectures has seen remarkable growth as enterprises begin to stray away from more traditional, monolithic applications. With microservices comes faster time-to-market, enhanced fault tolerance, better scalability, and more; however, the push for real-time data complicates this transition, where new data management methods must be considered when attempting microservices implementation.

Randy May, principal architect at Hazelcast, and Jeremy Saenz, director, developer experience at Synadia, joined DBTA’s webinar, Building and Managing a High-Performance Microservices Architecture, to identify the challenges and solutions in adopting microservices architectures while simultaneously incorporating real-time data practices.

May presented his thesis for webinar viewers: When building a high performance microservice architecture, the event-driven architecture offers several advantages over a traditional service-based architecture and dedicated stream processing is an essential component of an event-driven architecture.

There are a few areas where an event-based architecture is superior to a service-based architecture, May explained, including:

  • Resilience built-in with persistent writes
  • Loose coupling, where order services are unaware of its downstream consumers for higher agility
  • Performance, as the architecture is asynchronous, non-blocking, and scalable in nature

As far as implementation goes, there are several routes that an organization may take; May noted that each approach will require a fast data layer to support microservices. These approaches include:

  • Placing the business logic in the application servers, making it easy to write a service
  • Placing the business logic in stream processors and applications servers, yielding greater write capabilities compared to relying on just app servers
  • Placing most of the business logic in stream processors, creating a simpler tech stack
  • Leveraging a unified real-time data platform (such as Hazelcast’s platform) that combines a stream processor with fast data

According to Saenz, “rethinking some of our common core assumptions about how things connect to each other—how applications and data connect to each other—is really at the heart of what can bring a huge advantage to a lot of organizations today.”

In this rethinking, Saenz posited that NATS—a high-performance, open source messaging system and connective fabric—is what can propel organizations to adapt to the massive transformations occurring in the tech world.

NATS aims to simplify the number of technologies used for services to communicate while simultaneously empowering enterprises to build systems that are globally available, multi-cloud, multi-geo, and highly adaptive to change and scale. Adaptability, in particular, is a significant challenge when adopting microservices architectures, and NATS is equipped to resolve it, according to Saenz.

Some of the benefits of NATS include:

  • Location independent addressing
  • M:N communications
  • Push and pull-based
  • Decentralized and secure multi-tenancy
  • Intelligent persistence
  • Global scale

NATS architecture uses a simple server/client-based model that is small and easy to deploy. It is further composable into arbitrary topologies, supports over 40 different client library implementations, and maintains first-class support for microservices.

Ultimately, leveraging NATS for microservice architectures empowers organizations to build services that are automatically discoverable, observable, and nomadic, according to Saenz.

For an in-depth discussion regarding microservice adoption, including examples, demos, and more, you can watch an archived version of the webinar here.