YAS: Yet Another Shop
YAS is a pet project aim to practice building a typical microservice application in Java
Tentative technologies and frameworks
- Java 17
- Spring boot 3
- 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
127.0.0.1 akhq
- Open terminal of your choice, go to
yas
directory, 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
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
https://github.com/nashtech-garage/yas/tree/main/docs
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
- Developer guidelines
By contributing, you agree that your contributions will be licensed under MIT License.