Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rajadilipkolli/my-spring-boot-experiments

Examples about various spring integrations
https://github.com/rajadilipkolli/my-spring-boot-experiments

elasticsearch graphql mongodb redis spring-boot spring-plugin

Last synced: 2 months ago
JSON representation

Examples about various spring integrations

Awesome Lists containing this project

README

        

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/rajadilipkolli/my-spring-boot-experiments)

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

* [spring boot integration experiments](#spring-boot-integration-experiments)
* [Tech Stack](#tech-stack)
* [Useful Docker Commands](#useful-docker-commands)
* [Useful git Commands](#useful-git-commands)

# spring boot integration experiments

The following table list all sample codes related to the spring boot integrations.

| Name | Description | Status |
|-------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
| [Ultimate Redis Implementation](./boot-ultimate-redis) | The application, discovers ways of interacting with Redis with different TTLs for different Caches | Completed |
| [Connecting to multiple data sources](./jpa/boot-data-multipledatasources) | The application, demonstrates the way spring boot application connects with multiple databases,connection pooling and both type of database migrations (liquibase and flyway) | Completed |
| [Implementation of Strategy Design Pattern](./boot-strategy-plugin) | The application, demonstrates strategy pattern in spring application and build native image using GraalVM, use a main class to start up the application and builds nativeImage | Completed |
| [Archunit Implementation](./boot-api-archunit-sample) | The application, demonstrates how to apply arch unit rules to the spring boot project | Completed |
| [Hibernate Envers Implementation using spring data JPA](./jpa/boot-data-envers) | The application, demonstrates how to apply hibernate envers to the spring boot project, monitor the system and alert when CPU usage is high or when system is down | Completed |
| [Graph QL implementation using webflux](./graphql/boot-graphql-webflux) | The application, demonstrates the way to connect to database using graph ql using webflux | Completed |
| [Hibernate 2nd Level Cache Using Redis](./jpa/boot-hibernate2ndlevelcache-sample) | The application, demonstrates how to apply Hibernate 2nd level cache using redis in a spring boot project , testing using QueryCounting, implemented hypersistence Repository instead of default JPARepository | Completed |
| [Read Replica Postgres](./jpa/boot-read-replica-postgresql) | The application, demonstrates saving the data in Postgresql and then read from replica instance | Completed |
| [BackgroundJobs and Scheduling using Jobrunr](./scheduler/boot-scheduler-jobrunr) | The application, demonstrates running background jobs and scheduling the tasks using [Jobrunr](https://www.jobrunr.io/en/) | Completed |
| [MultiTenancy DB Based](./jpa/multitenancy/multitenancy-db) | The application, demonstrates running multi tenancy in JPA using different databases but same DDLs and DMLs | Completed |
| [MultiTenancy Partition Based](./jpa/multitenancy/partition) | The application, demonstrates running multi tenancy in JPA using partition based i.e Shared Database with Shared table | Completed |
| [MultiTenancy Schema Based](./jpa/multitenancy/schema) | The application, demonstrates running multi tenancy in JPA using schema based i.e Shared Database with Separate Schema | Completed |
| [MultiTenancy with multipledatsources](./jpa/multitenancy/multidatasource-multitenancy) | The application, demonstrates running multi tenancy in JPA using all strategies using multidatasources | Completed |
| [mongodb-elasticsearch-integration](./boot-mongodb-elasticsearch) | The application, demonstrates saving the data in MongoDb and then searching in ElasticSearch for quick Search, GeoSpatial Search | WIP |
| [spring-boot-graphql-querydsl](./graphql/boot-graphql-querydsl) | The application, demonstrates the way to connect to database using graph ql and querydsl | WIP |
| [spring-boot-graphql-webmvc](./graphql/boot-graphql-webmvc) | The application, demonstrates how to apply graphql concepts to the spring boot project | WIP |
| [Choas Engineering Principles](./boot-choas-monkey) | The application, demonstrates how to apply choas engineering concepts to the spring boot project, test using Gatling to demonstrate the difference | WIP |
| [Feature Toggles](./boot-togglz-sample) | The application, demonstrates how to apply feature toggles concepts to the spring boot project | WIP |
| [Rabbit Mq Implementation](./boot-rabbitmq-thymeleaf) | The application, demonstrates how rabbitmq works with producer side acknowledgement | Completed |
| [Spring Batch Implementation](./batch-boot-jpa-sample) | The application, demonstrates implementing Spring Batch 5 using simple config and creating batch tables using liquibase | Completed |
| [Rest API Documentation with examples](./boot-rest-docs-sample) | This application, demonstrates ability to generate pdf API documentation using spring rest docs | Completed |
| [Custom SequenceNumber and LazyConnectionDataSourceProxy for db connection improvement](./jpa/boot-data-customsequence) | This application, demonstrated ability to create custom sequences, using datasource-proxy and LazyConnectionDataSourceProxy for db connection improvement using mariadb | Completed |
| [KeySet pagination and dynamic search](./jpa/boot-data-keyset-pagination/blaze-persistence/) | Implements KeySet Pagination using Blaze Persistence and enable dynamic search using specifications | Completed |

For More info about this repository, Please visit [here](https://rajadilipkolli.github.io/my-spring-boot-experiments/)

### Tech Stack
Repo is built on the following main stack:

- Java [Java](https://www.java.com) – Languages
- JavaScript [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) – Languages
- SQL [SQL](https://en.wikipedia.org/wiki/SQL) – Languages
- Node.js [Node.js](http://nodejs.org/) – Frameworks (Full Stack)
- Project Reactor [Project Reactor](https://projectreactor.io/) – Java Tools
- QueryDSL [QueryDSL](http://www.querydsl.com/) – Java Tools
- Spring Framework [Spring Framework](https://spring.io/projects/spring-framework) – Frameworks (Full Stack)
- jQuery [jQuery](http://jquery.com/) – Javascript UI Libraries
- Cloud DB for Mysql [Cloud DB for Mysql](https://www.ncloud.com/product/database/cloudDbMysql) – SQL Database as a Service
- H2 Database [H2 Database](http://www.h2database.com/) – Databases
- Liquibase [Liquibase](https://www.liquibase.com) – Database Tools
- MariaDB [MariaDB](https://mariadb.com/) – Databases
- Microsoft SQL Server [Microsoft SQL Server](http://microsoft.com/sqlserver) – Databases
- MongoDB [MongoDB](http://www.mongodb.com/) – Databases
- MySQL [MySQL](http://www.mysql.com) – Databases
- PostgreSQL [PostgreSQL](http://www.postgresql.org/) – Databases
- RabbitMQ [RabbitMQ](http://www.rabbitmq.com/) – Message Queue
- Redis [Redis](http://redis.io/) – In-Memory Databases
- Serverless AppSync [Serverless AppSync](https://github.com/serverless-components/aws-app-sync) – GraphQL Tools
- Spring Data [Spring Data](https://spring.io/projects/spring-data) – Database Tools
- jOOQ [jOOQ](http://www.jooq.org) – Database Tools
- CircleCI [CircleCI](https://circleci.com/) – Continuous Integration
- Docker [Docker](https://www.docker.com/) – Virtual Machine Platforms & Containers
- Docker Compose [Docker Compose](https://github.com/docker/compose) – Container Tools
- FindBugs [FindBugs](http://findbugs.sourceforge.net/) – Code Review
- GitHub Actions [GitHub Actions](https://github.com/features/actions) – Continuous Integration
- Gradle [Gradle](https://www.gradle.org/) – Java Build Tools
- Grafana [Grafana](http://grafana.org/) – Monitoring Tools
- Jenkins [Jenkins](http://jenkins-ci.org/) – Continuous Integration
- Kibana [Kibana](https://www.elastic.co/kibana) – Monitoring Tools
- Logback [Logback](https://logback.qos.ch/) – Log Management
- Loki [Loki](https://github.com/grafana/loki) – Logging Tools
- Prometheus [Prometheus](http://prometheus.io/) – Monitoring Tools
- Apache Camel [Apache Camel](https://camel.apache.org/) – Platform as a Service
- Alpine Linux [Alpine Linux](https://www.alpinelinux.org/) – Operating Systems
- Base [Base](https://getbase.com/) – CRM
- Elasticsearch [Elasticsearch](https://www.elastic.co/products/elasticsearch) – Search as a Service
- Shell [Shell](https://en.wikipedia.org/wiki/Shell_script) – Shells

Full tech stack [here](/techstack.md)

### Useful Docker Commands

> Start postgres and pgadmin
```shell
docker compose up postgres pgadmin4
```
> Clean up everything using
```shell
docker system prune -a -f --volumes
```
> Claim unused volumes
```shell
docker volume prune
```
> Running container
```shell
docker container ls
```

### Useful git Commands

How to overwrite local changes with git pull

> Stash local changes:
```shell
$ git stash
```
> Pull changes from remote:
```shell
$ git pull
```

How to revert the changes that are pushed to remove
```shell
$ git revert $hash
```