What is Spring Data and what are its top alternatives?
Top Alternatives to Spring Data
- Hibernate
Hibernate is a suite of open source projects around domain models. The flagship project is Hibernate ORM, the Object Relational Mapper. ...
- Spring Boot
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. ...
- Spring Batch
It is designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. It also provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. ...
- MyBatis
It is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. It eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. It can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records. ...
- jOOQ
It implements the active record pattern. Its purpose is to be both relational and object oriented by providing a domain-specific language to construct queries from classes generated from a database schema. ...
- Slick
It is a modern database query and access library for Scala. It allows you to work with stored data almost as if you were using Scala collections while at the same time giving you full control over when a database access happens and which data is transferred. ...
- Dataform
Dataform helps you manage all data processes in your cloud data warehouse. Publish tables, write data tests and automate complex SQL workflows in a few minutes, so you can spend more time on analytics and less time managing infrastructure. ...
- Liquibase
Liquibase is th leading open-source tool for database schema change management. Liquibase helps teams track, version, and deploy database schema and logic changes so they can automate their database code process with their app code process. ...
Spring Data alternatives & related posts
- Easy ORM21
- Easy transaction definition7
- Is integrated with spring jpa2
- Can't control proxy associations when entity graph used3
related Hibernate posts
Spring Boot
- Powerful and handy145
- Easy setup133
- Java125
- Spring90
- Fast85
- Extensible46
- Lots of "off the shelf" functionalities37
- Cloud Solid32
- Caches well26
- Many receipes around for obscure features24
- Productive24
- Modular23
- Integrations with most other Java frameworks23
- Spring ecosystem is great22
- Fast Performance With Microservices21
- Auto-configuration20
- Community18
- Easy setup, Community Support, Solid for ERP apps17
- One-stop shop15
- Cross-platform14
- Easy to parallelize14
- Powerful 3rd party libraries and frameworks13
- Easy setup, good for build erp systems, well documented13
- Easy setup, Git Integration12
- It's so easier to start a project on spring5
- Kotlin4
- The ability to integrate with the open source ecosystem1
- Microservice and Reactive Programming1
- Heavy weight23
- Annotation ceremony18
- Java13
- Many config files needed11
- Reactive5
- Excellent tools for cloud hosting, since 5.x4
related Spring Boot posts
We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.
To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas
To build #Webapps we decided to use Angular 2 with RxJS
#Devops - GitHub , Travis CI , Terraform , Docker , Serverless
Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.
Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.
related Spring Batch posts
- Easy to use6
- Extensions3
- Integrated with Spring3
- Flexible3
- Data-first support2
related MyBatis posts
related jOOQ posts
related Slick posts
related Dataform posts
- Many DBs supported18
- Great database tool18
- Easy setup12
- Database independent migration scripts8
- Database version controller5
- Unique open source tool5
- Precondition checking2
- Supports NoSQL and Graph DBs1
- Documentation is disorganized5
- No vendor specifics in XML format - needs workarounds5
related Liquibase posts
Flyway vs Liquibase #Migration #Backwards-compatible
We were looking for a tool to help us integrating the migration scripts as part of our Deployment. At first sight both tools look very alike, are well integrated with Spring, have a fairly frequent development activity and short release cycles.
Liquibase puts a lot of emphasis on independence with the DB, allowing you to create the scripts on formats like JSON and YML, abstracting away from SQL, which it's also supported. Since we only work with one DB type across services we wouldn't take much advantage of this feature.
Flyway on the other hand has the advantage on being actively working on the integration with PostgreSQL 11, for it's upcoming version 6. Provides a more extensive set of properties that allow us to define what's allowed on what's not on each different environment.
Instead of looking for a tool that will allow us to rollback our DB changes automatically, we decided to implement backwards-compatible DB changes, for example adding a new column instead of renaming an existing one, postponing the deletion of the deprecated column until the release has been successfully installed.
All the DB deployments in our current organization are manual. We want to automate them. We are leaning toward Liquibase since it has versioning and rollbacks. Is Flyway better or Liquibase?