Distributed SQL for Spring Apps
YugabyteDB is the database of choice for building stateful cloud native apps that require resilience and scale. YugabyteDB offers Spring developers an easy way to deploy a transactional, resilient and geo-distributed database in their application stack from the outset, while also providing flexibility and scalability as requirements change. YugabyteDB is designed to run anywhere your apps are – across public, private, and hybrid clouds, in virtual and Kubernetes environments.
Using Spring Boot with YugabyteDB
Spring Boot is the most popular Java framework for building microservices. Spring Boot makes it easy to build stand-alone, production-grade Spring based applications that you can “just run”. You can connect your stateful Spring Boot applications to a YugabyteDB cluster using a Postgres-compatible SQL API or a Cassandra-compatible semi-relational API. You can download and deploy YugabyteDB in your public, private, or hybrid cloud environment. YugabyteDB Anywhere offers a self-hosted private DBaaS for YugabyteDB to simplify operations. Finally YugabyteDB Managed delivers YugabyteDB as a fully managed public DBaaS.
Accessing YugabyteDB through Spring Data
Spring Data YugabyteDB enables developers to connect to YugabyteDB clusters through a standard set of APIs that abstract away the need to learn database-specific query interfaces, reducing ramp-up time and increasing developer velocity. Using cluster and topology-aware Yugabyte Smart Drivers, applications can get better performance and fault tolerance by connecting to any node in a distributed SQL database cluster without the need for an external load balancer.
Check out the Spring Data YugabyteDB GitHub repository.
O’Reilly EBook: Design Patterns for Cloud Native Applications
Download free excerpts of the O’Reilly ebook on the most commonly used cloud native design patterns.
Why YugabyteDB for Spring Apps
YugabyteDB is perfect for transactional applications and services that require data to be strongly consistent and highly available even in the face of data center, zone, and region failures.
PostgreSQL Compatibility
YugabyteDB is feature compatible with PostgreSQL. This means developers can use Spring Data JPA for database access with no change to their code.
Resilience and High Availability
With YugabyteDB, critical services can remain available during node, zone, region, and data center failures with fast failovers. YugabyteDB heals itself by re-replicating data automatically, and delivers zero downtime on maintenance tasks such as software upgrades, security patching, and distributed backups.
Horizontal Scalability
Operations teams can effortlessly scale out throughput and the number of connections to their YugabyteDB cluster even under heavy load without disruption by simply adding nodes. The database automatically rebalances load to use available resources.
Geographic Distribution
YugabyteDB offers the most comprehensive and flexible deployment options in geo-distributed environments. Operators can make use of synchronous and asynchronous data replication and geo-partitioning to achieve desired consistency, resilience, performance, and compliance objectives.
Advanced Relational Database Capabilities
YugabyteDB delivers a comprehensive set of advanced RDBMS features like triggers, functions, stored procedures, strong secondary indexes, and distributed ACID transactions. Developers no longer need to choose between the horizontal scalability of NoSQL systems and the ACID guarantees of traditional SQL systems.
Security
YugabyteDB is built from the ground up with data security in mind. The database enables organizations to maintain a robust security posture with built-in controls such as LDAP authentication, role-based access control (RBAC), data encryption at rest and in transit (TLS), audit logging, and column-level permissions. You can also get advanced features such as row level security (RLS) and column-level encryption for more advanced use cases.
Additional Resources
- Join a 90 minute workshop on running Spring apps with YugabyteDB
- Read the news about the Spring Data YugabyteDB project
- Get the sample PetClinic app that uses Spring Data YugabyteDB