Building Modern Data Microservices with Tanzu Data Services

December 11, 2023 Gregory Green

As many or our customers have found in recent years, cloud native microservice-based applications improve IT operations efficiency and security along with developer speed and productivity. When data is at the heart of those mission-critical applications, Tanzu Data Services, a portfolio of popular enterprise-grade cloud native data solutions for data in motion and at rest, can help. If your portfolio includes Java, Kotlin, or .NET applications, your digital transformation and modernization initiatives can benefit from using Tanzu Data Services, along with Spring and Steeltoe, for these data microservices.

Spring and Steeltoe apps connecting to VMware Tanzu Data Services

What are Spring and Steeltoe?

Spring is the world’s most popular portfolio of projects for building applications written in Java Virtual Machine (JVM) languages, such as Java and Kotlin. In particular, the Spring Boot project is a proven method for building cloud native microservices.

Steeltoe is a collection of .NET libraries with tens of millions of downloads. It has been helping developers build .NET cloud native microservice applications since 2017.

Why Tanzu Data Services for modern microservices?

These are a few of the benefits of using Tanzu Data Services with microservice frameworks such as Spring and Steeltoe:

  • Simplified data development 

  • Best practice cloud native data microservices

  • Data resiliency for mission-critical applications

  • Data scalability to handle peak loads

  • Enterprise support 

Simplified data development

Using Spring and Steeltoe together makes it super easy to get started using the most popular data services. Visit start.spring.io to generate a Spring application in a few clicks.

Screenshot of start.spring.io

.NET developers can visit start.steeltoe.io to start building a compliant cloud native .NET application.

Screenshot of start.steeltoe.io

Best practice cloud native data microservices

With the help of Spring and Steeltoe, developers do not need to be experts in every aspect of application infrastructure to build production-ready applications that use popular data services. Developers can instead focus on implementing the required business logic. Low-level details like data service connection management, thread pooling, and configurations can be left to Spring and Steeltoe.

Data resiliency for mission-critical apps

Most of the customers I talk with cannot tolerate any outages. They need business continuity. Using Spring and Steeltoe with Tanzu Data Services’ resiliency means you have fault tolerance and high availability for not only your Spring and Steeltoe applications but also their data on your cloud platforms.

Data scalability to handle peak loads

The Tanzu Data Services portfolio is built with scalability in mind for modern applications. If you do not know the production capacity needed for day one, you can start with assumptions. You can scale your applications and supporting data services using various cloud native platforms, such as Kubernetes, Cloud Foundry, and virtualization such as vSphere with the portfolio.

Enterprise support

With Tanzu by Broadcom as a trusted provider, companies have full-stack support from a single vendor. Companies have seen a benefit from world-class support for virtualization, platform, app, and data services for mission-critical systems.

Let’s dive deeper into the potential application use cases of Tanzu Data Services.

Cloud native data in motion

Tanzu RabbitMQ 

Imagine you’re modernizing or breaking down a monolith JEE to Spring Boot or .NET Framework to .NET Core microservices to run in containers. When cloud native applications need reliable communication, using a messaging solution is a safe bet. RabbitMQ is one of the most widely deployed open source message brokers.

 Apps produce to RabbitMQ or consume from RabbitMQ

Configure the following Spring app code to a RabbitMQ quorum queue or stream for the consumption of reliable high-throughput event streaming

AccountConsumer code in Spring

Or add a few attributes in the following .NET code, and Steeltoe does the rest!

AccountConsumer code in SteelToe

Cloud native data at rest

Tanzu SQL 

SQL is a very popular data interface language for C# applications. Postgres and MySQL are the two most popular databases, and developers love creating applications with these databases. Tanzu SQL and Data Service Manager make it easier to run enterprise-grade deployments of Postgres and MySQL on cloud native platforms at scale.

Spring/SteelToe apps connected to MySQL or Postgres

Why would you want to use Spring and Steeltoe for this? Again, Spring and Steeltoe is like an "Easy button" for incorporating Postgres and MySQL. Steeltoe has connectors for Postgres and MySQL

Spring has Spring Data JPA where the low-level details to Create, Read, Update, and Delete (CRUD) domain data (such as bank details below) in Postgres/MySQL are implemented by the framework.

Bank repository in Spring

Tanzu Greenplum

Recently, there has been an explosion of interest in ML/AI. Greenplum is a leading open source-based massively parallel processing (MPP) database built for ML/AI analytics. Greenplum Database helps companies like Morgan Stanley solve for massive scale while lowering costs for financial reporting and risk management. Being an MPP database, Greenplum can scale to petabytes of data. Greenplum allows you to run performant ML/AI workloads with various models, such as large language models (LLMs)

For Spring and Steeltoe applications, Greenplum looks like Postgres.

Spring/SteelToe apps connected to Greenplum

Spring and Steeltoe help you bring the power of Greenplum’s  analytic capabilities at scale to the Java Virtual Machine and .NET runtime.

Tanzu GemFire

GemFire is a product that I love, yet many people have not heard about it. Thanks to my dear friend Gideon Low, we know that MasterCard credit card transactions benefit from the power of GemFire, processing beyond a billion transactions per day. GemFire is extremely fast and scalable. If you have performance or scalability database issues, GemFire deserves a good look.

GemFire can be a great improvement for .NET and Spring applications that use open source Redis. For example, if you have multiple applications sharing a Redis environment that has become a bottleneck, GemFire can act as a Redis cluster for Redis .NET application clients. GemFire with Steeltoe brings improvements for fault tolerance, scalability, and data consistency to Redis for mission-critical .NET applications. With Spring Data for Tanzu GemFire, developers do not need to worry about implementing write/read operations. Just like Spring Data JPA, all they need to do is define an interface and Spring does the rest.

AccountRepository for GemFire in Spring

Spring/SteelToe apps connected to GemFire

Summary

Java is a proven programming language and has been used to develop applications since 1995.  .NET (in particular, C#) continues to gain in popularity. You can benefit from the simplicity of Spring and Steeltoe when building microservice applications in these languages. These applications typically use SQL databases such as Postgres and MySQL, caching solutions like Redis, or messaging solutions like RabbitMQ. Whether you need SQL, caching, or ML/AI at scale, Spring and Steeltoe along with Tanzu Data Services can provide a great benefit. Check out these Spring reference implementations along with these Steeltoe and data solutions examples. Consider the modern platforms Tanzu Application Service for Cloud Foundry or Tanzu Application Platform for Kubernetes to simplify the provisioning and management of your data microservices.

About the Author

Gregory Green

Gregory Green is an advisory solution engineer at VMware. He has more than 25 years of diverse software engineering experience in various industries, such as pharmaceutical, financial, telecommunications, and others. Gregory specializes in RabbitMQ, GemFire, Spring, and Kubernetes cloud native–based solutions. He holds bachelor’s and master’s degrees in computer science.

More Content by Gregory Green
Previous
Empower Your Enterprise with Tanzu Spring Runtime Access Now
Empower Your Enterprise with Tanzu Spring Runtime Access Now

Explore how Tanzu Spring Runtime empowers enterprises to maximize their Spring-based investments, and see w...

Next
How Netflix Increased Application Performance with Spring Boot 3 and Java 17
How Netflix Increased Application Performance with Spring Boot 3 and Java 17

Read how Netflix achieved a 15 percent performance boost by upgrading its applications to Spring Boot 3, wi...