Skip to content

mstgnz/microservice

Repository files navigation

Microservices Exploration Project

Project Overview

Welcome to the Microservices Exploration Project! This project is designed with the aim of providing a comprehensive understanding of microservices architecture, solidifying configuration management skills, and learning by practical application.

About Microservices

Microservices are a software architectural style that structures an application as a collection of loosely coupled services. Each service is responsible for specific business capabilities and can be developed, deployed, and scaled independently. Microservices offer benefits such as improved agility, scalability, and fault isolation.

Project Scope

This project leverages Docker Compose to orchestrate a set of interconnected microservices, databases, and messaging systems, simulating a microservices architecture environment. Here's a breakdown of the key components:

Key technologies and tools used in this project:

  • PostgresSQL: Serves as the primary database for storing application data.
  • MongoDB: Provides flexibility for unstructured data storage.
  • Redis: Used for caching and enhancing performance.
  • Apache Kafka: Implements a message queue and event-driven architecture.
  • gRPC: Enables efficient and high-performance communication between services.
  • Consul: Facilitates service discovery and configuration management.
  • Kubernetes: For container orchestration (currently not in Docker Compose but can be extended).

Getting Started

To get started with this project and explore microservices, follow these steps:

  • Clone this repository to your local environment.
  • Navigate to the project's root directory.
  • Run docker-compose up -d to start the microservices environment.
  • Visit individual microservices by their respective ports (e.g., http://localhost:8086 for the "auth" service).

Contributing

This project is open-source, and contributions are highly encouraged. Whether you're interested in adding features, fixing bugs, or enhancing documentation, your contributions are valuable to the community.

License

This project is licensed under the Apache License. See the LICENSE file for more details.