Yas
YAS: Yet Another Shop, a sample microservices project in Java
Install / Use
/learn @nashtech-garage/YasREADME
YAS: Yet Another Shop
YAS is a pet project aim to practice building a typical microservice application in Java
Tentative technologies and frameworks
- Java 25
- Spring Boot 4.0
- Testcontainers
- Next.js
- Keycloak
- Kafka
- Elasticsearch
- K8s
- GitHub Actions
- SonarCloud
- OpenTelemetry
- Grafana, Loki, Prometheus, Tempo
Local development architecture

Getting started with Docker Compose
- Get the latest source code
- Add the following records to your host file:
127.0.0.1 identity
127.0.0.1 api.yas.local
127.0.0.1 pgadmin.yas.local
127.0.0.1 storefront
127.0.0.1 backoffice
127.0.0.1 loki
127.0.0.1 tempo
127.0.0.1 grafana
127.0.0.1 elasticsearch
127.0.0.1 kafka
- Open terminal of your choice, go to
yasdirectory, rundocker compose up, wait for all the containers up and running
Warning: To run all the containers, you need a minimum of 16GB of RAM. Otherwise, you can only run the core services with this command
docker compose -f docker-compose.yml up
- All the containers up and running then we start source connectors by run script, open any terminal window... go to the YAS root folder and type: ./start-source-connectors.sh
- Open your browser, now you can access the websites via
http://storefront/;http://backoffice/login with admin/password
Note: For the first run, the storefront and the backoffice might not work as expected. Stop all the containers (Ctrl + C) and run docker compose up again.
You might also want to explore:
http://pgadmin.yas.local/. Account login:admin@yas.com/ admin. Register a server: postgres, port 5432, username admin, password admin. The Postgresql server is also exposed to the host machine: servername: localhost, port: 5432, username: admin, password: adminhttp://api.yas.local/swagger-ui/for all the REST API document of all the serviceshttp://identity/for Keycloak console, account admin/adminhttp://grafana/for observability: log, trace, matrixhttp://elasticsearch/for calling Elasticsearch APIs
About docker-compose files
- docker-compose.yml for all core services
- docker-compose.search.yml for search service
- docker-compose.o11y.yml for observability services
Deploy to Kubernetes
https://github.com/nashtech-garage/yas/tree/main/k8s/deploy
Documentation
Contributing
- Give us a star
- Reporting a bug
- Participate discussions
- Propose new features
- Submit pull requests. If you are new to GitHub, consider to learn how to contribute to a project through forking
By contributing, you agree that your contributions will be licensed under MIT License.
Screenshots
<table> <thead> <tr> <th>Backoffice & Storefront</th> <th>Observability</th> </tr> </thead> <tbody> <tr valign="top"> <td> <img src="screenshots/yas-backoffice.png" alt="Yas Backoffice"/> <img src="screenshots/yas-storefront.png" alt="Yas Storefront"/> <img src="screenshots/yas-swagger.png" alt="Yas Swagger"/> </td> <td> <img src="screenshots/yas-grafana-tracing.png" alt="Yas Grafana Tracing"/> <img src="screenshots/yas-grafana-metrics.png" alt="Yas Grafana Metrics"/> </td> </tr> </tbody> </table>Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
prose
351.2kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
