More About the Project

Microservices Overview

This project is built on a microservices architecture, comprising several independent services that communicate with each other through Kafka messaging. The key microservices include:

  • IAM-service: Handles user authentication, registration, and management. It also manages the creation of posts and comments. Security features include JWT (JSON Web Token) for securing endpoints, along with Flyway for database migrations and CORS (Cross-Origin Resource Sharing) configurations to ensure secure cross-origin requests.
  • UTILS-service: Responsible for logging actions such as user creation, post creation, and comment creation. It consumes messages from the IAM-service via Kafka, aggregating and processing logs for further analysis.
  • GATEWAY-service: Acts as the entry point for all external requests to the microservices. It centralizes and manages routing to other microservices, enforcing security policies and ensuring that requests are properly authenticated and authorized.
  • DISCOVERY-service: Uses Consul for dynamic service registration and discovery, enabling smooth communication and resilience between microservices.

Docker Hub Deployment

Each microservice is containerized using Docker, making deployment consistent and repeatable across different environments. The Docker images are stored in Docker Hub, enabling seamless integration with CI/CD pipelines. This approach ensures that any updates to the services are automatically built and pushed to Docker Hub, from where they can be deployed to any server.

Hosting and Deployment

The project is hosted on a scalable cloud platform, with CORS (Cross-Origin Resource Sharing) configured to control how resources on the server are shared with different domains. The server configuration includes Nginx as a reverse proxy, handling incoming requests and distributing them to the appropriate microservices. Nginx also handles SSL termination, ensuring that all communications are encrypted.

AWS Database Integration

The project's data is managed using PostgreSQL, hosted on Amazon Web Services (AWS). This setup ensures high availability and scalability of the database, with automated backups and disaster recovery options in place. The database configuration is optimized for performance, handling large volumes of data efficiently.

Contact Information

If you have any questions or need further details, feel free to reach out via email at mykola.shchypailo@gmail.com.