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 :)