https://github.com/gabryelboeira/spring_cloud_webflux
Projeto de estudo para implementação de webflux e o consumo de uma api webhook externa
https://github.com/gabryelboeira/spring_cloud_webflux
docker-compose functional-programming-in-java java lombok maven postgresql spring-boot spring-cloud webflux-client webhooks
Last synced: about 2 months ago
JSON representation
Projeto de estudo para implementação de webflux e o consumo de uma api webhook externa
- Host: GitHub
- URL: https://github.com/gabryelboeira/spring_cloud_webflux
- Owner: GabryelBoeira
- Created: 2025-06-08T01:51:08.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-06-29T00:00:51.000Z (11 months ago)
- Last Synced: 2025-06-29T01:19:19.479Z (11 months ago)
- Topics: docker-compose, functional-programming-in-java, java, lombok, maven, postgresql, spring-boot, spring-cloud, webflux-client, webhooks
- Language: Java
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Webhook App
A reactive webhook application built with Spring Boot that allows you to receive, process, and manage webhooks.
## Description
This application provides a platform for handling webhooks in a reactive way, using Spring WebFlux and R2DBC for non-blocking database operations. It's designed to be scalable and efficient, making it suitable for high-throughput webhook processing.
## Technologies
- Java 21
- Spring Boot 3.5.0
- Spring WebFlux (Reactive Web)
- Spring Data R2DBC (Reactive Database Connectivity)
- PostgreSQL 15.5
- Consul 1.18.0 (Service Discovery)
- Spring Cloud LoadBalancer
- Docker & Docker Compose
## Prerequisites
- Java 21 or higher
- Maven 3.6 or higher
- Docker and Docker Compose
- Git
## Setup and Installation
### Clone the Repository
```bash
git clone https://github.com/GabryelBoeira/Spring_cloud_webflux.git
cd webhook-app
```
### Start the Infrastructure
The application requires PostgreSQL and Consul, which can be started using Docker Compose:
```bash
docker-compose up -d
```
This will start:
- PostgreSQL on port 5432 with database name `webhookdb` (credentials: root/root)
- Consul on port 8500 with UI accessible at http://localhost:8500
### Build and Run the Application
```bash
./mvnw clean install
./mvnw spring-boot:run
```
## Development
### Database Configuration
The application is configured to connect to a PostgreSQL database. The default configuration is:
- Database: webhookdb
- Username: root
- Password: root
- Host: localhost
- Port: 5432
You can modify these settings in the application.properties file or by setting environment variables.
### Service Discovery
The application uses Consul for service discovery. The Consul UI is accessible at http://localhost:8500.
### Building for Production
To build a production-ready JAR file:
```bash
./mvnw clean package
```
The JAR file will be created in the `target` directory.
## API Documentation
*Note: API documentation will be added as the application evolves.*
## Configuration Options
The application can be configured through the `application.properties` file or environment variables:
- `spring.application.name`: The name of the application (default: "webhook app")
- `spring.r2dbc.url`: The R2DBC URL for database connection
- `spring.r2dbc.username`: Database username
- `spring.r2dbc.password`: Database password
- `spring.cloud.consul.host`: Consul host
- `spring.cloud.consul.port`: Consul port
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the [MIT License](LICENSE).