my-spring-boot-experiments
my-spring-boot-experiments copied to clipboard
Examples about various spring integrations
- spring boot integration experiments
- Tech Stack
- Useful Docker 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 | The application, discovers ways of interacting with Redis with different TTLs for different Caches | Completed |
| Connecting to multiple data sources | 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 | 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 | The application, demonstrates how to apply arch unit rules to the spring boot project | Completed |
| Hibernate Envers Implementation using spring data JPA | 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 | The application, demonstrates the way to connect to database using graph ql using webflux | Completed |
| Hibernate 2nd Level Cache Using Redis | 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 | The application, demonstrates saving the data in Postgresql and then read from replica instance | Completed |
| BackgroundJobs and Scheduling using Jobrunr | The application, demonstrates running background jobs and scheduling the tasks using Jobrunr | Completed |
| MultiTenancy DB Based | The application, demonstrates running multi tenancy in JPA using different databases but same DDLs and DMLs | Completed |
| MultiTenancy Partition Based | The application, demonstrates running multi tenancy in JPA using partition based i.e Shared Database with Shared table | Completed |
| MultiTenancy Schema Based | The application, demonstrates running multi tenancy in JPA using schema based i.e Shared Database with Separate Schema | Completed |
| MultiTenancy with multipledatsources | The application, demonstrates running multi tenancy in JPA using all strategies using multidatasources | Completed |
| mongodb-elasticsearch-integration | The application, demonstrates saving the data in MongoDb and then searching in ElasticSearch for quick Search, GeoSpatial Search | WIP |
| spring-boot-graphql-querydsl | The application, demonstrates the way to connect to database using graph ql and querydsl | WIP |
| spring-boot-graphql-webmvc | The application, demonstrates how to apply graphql concepts to the spring boot project | WIP |
| Choas Engineering Principles | The application, demonstrates how to apply choas engineering concepts to the spring boot project, test using Gatling to demonstrate the difference | WIP |
| Feature Toggles | The application, demonstrates how to apply feature toggles concepts to the spring boot project | WIP |
| Rabbit Mq Implementation | The application, demonstrates how rabbitmq works with producer side acknowledgement | Completed |
| Spring Batch Implementation | The application, demonstrates implementing Spring Batch 5 using simple config and creating batch tables using liquibase | Completed |
| Rest API Documentation with examples | This application, demonstrates ability to generate pdf API documentation using spring rest docs | Completed |
For More info about this repository, Please visit here
Tech Stack
Repo is built on the following main stack:
Java – Languages
JavaScript – Languages
SQL – Languages
Node.js – Frameworks (Full Stack)
Project Reactor – Java Tools
QueryDSL – Java Tools
Spring Framework – Frameworks (Full Stack)
jQuery – Javascript UI Libraries
Cloud DB for Mysql – SQL Database as a Service
H2 Database – Databases
Liquibase – Database Tools
MariaDB – Databases
Microsoft SQL Server – Databases
MongoDB – Databases
MySQL – Databases
PostgreSQL – Databases
RabbitMQ – Message Queue
Redis – In-Memory Databases
Serverless AppSync – GraphQL Tools
Spring Data – Database Tools
jOOQ – Database Tools
CircleCI – Continuous Integration
Docker – Virtual Machine Platforms & Containers
Docker Compose – Container Tools
FindBugs – Code Review
GitHub Actions – Continuous Integration
Gradle – Java Build Tools
Grafana – Monitoring Tools
Jenkins – Continuous Integration
Kibana – Monitoring Tools
Logback – Log Management
Loki – Logging Tools
Prometheus – Monitoring Tools
Apache Camel – Platform as a Service
Alpine Linux – Operating Systems
Base – CRM
Elasticsearch – Search as a Service
Shell – Shells
Full tech stack here
Useful Docker Commands
Start postgres and pgadmin
docker compose up postgres pgadmin4
Clean up everything using
docker system prune -a -f --volumes
Claim unused volumes
docker volume prune
Running container
docker container ls
Useful git Commands
How to overwrite local changes with git pull
Stash local changes:
$ git stash
Pull changes from remote:
$ git pull
How to revert the changes that are pushed to remove
$ git revert $hash