A web app, built with spring ecosystem and angular for learning purposes.
🌀 This Application is not-completed
and you're welcome to clone, learn and develop it more. 🌀
- ✅ Using
Postgres
andMongoDB
for database (you can use docker to run them) - ✅ Using
Event Driven Architecture
on top of Kafka - ✅ Using
Service Discovery
withEureka server
- ✅ Using
API Gateway
withSpring Cloud Gateway
- ✅ Using
OpenFeign
for http calls between microservices
- 🚧 Add
Api Key Management
withKeycloak
for security and authentication. - 🚧 Using
Helm
orKustomize
for deploying the application onKubernetes
cluster. - 🚧 Add
Resilience4j
for circuit breaker and fallback. - 🚧 Add log aggregation with
ELK
stack. - 🚧 Add
Istio
for service mesh.
- ✔️
eureka-server-discovery
- Eureka is a service registry for resilient spring microservices. - ✔️
spring-cloud-gateway
- Spring Cloud Gateway is a non-blocking, reactive, based on Spring 5, web server gateway. - ✔️
open-feign
- Declarative REST Client for spring. - ✔️
spring-boot-starter-data-jpa
- Spring Data JPA is a layer on top of the JPA API. - ✔️
lombok
- Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. - ✔️
Junit5
- For unit testing and integration testing. - ✔️
docker-compose
- Compose is a tool for defining and running multi-container Docker applications. - ✔️
Apache Kafka
- Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. - ✔️
Angular
- A TypeScript-based open-source framework for building web applications.
- Java version 17
- Docker and docker compose
- postgresql (you can run it in a docker container)
- Clone the repo:
git clone
https://github.com/aslukili/hn-services
- run MongoDB docker image:
docker run -d -p 27017:27017 --name=hn-post mongo
- if you already have postgres installed, configure the .properties properties of each service that uses postures (user and notification services)
- run kafka and zookeeper from docker compose:
docker compose up
- run the rest of the services individually using Maven.
- run the front-end part:
git clone
https://github.com/aslukili/hn
&& cd hn && ng serve
- Open the full-stack app in your browser at
http://localhost:4200
- The app is barely working :)