This example shows how to use Restate together with Spring. The example implements a product service which sits in front of a Postgres database and reads and writes to it with Spring JPA.
You can use this example as a template for getting started with Restate and Spring.
Start postgres:
docker run -d \
-p 5432:5432 \
-e POSTGRES_USER=compose-postgres \
-e POSTGRES_PASSWORD=compose-postgres \
-v $(pwd)/postgresql:/docker-entrypoint-initdb.d \
postgres:15.0-alpine
This will start a Postgres instance with a Product
table with some products in it.
restate-server
Start the application:
./gradlew run
Register the service via the CLI:
restate deployments register localhost:9080
Try to reserve some product1 by calling the reserve handler of the ProductService:
curl -X POST localhost:8080/ProductService/product1/reserve
Check how many items are left in stock:
curl -X POST localhost:8080/ProductService/product1/getProductInformation
Try to reserve some more products.