- Application Framework: Java 8 and Spring Boot serve as the foundation for our application development.
- Microservices: Our microservices architecture is powered by Spring Cloud, incorporating components such as Spring Cloud Config, Open Feign, Spring Cloud Hystrix, and Spring Cloud Gateway.
- Database: We rely on MySQL, specifically Aurora and RDS, for our database needs.
- Public Cache: ElastiCache and Redis, including various Redis modes like Master-Slave, Sentinel, and cluster configurations, serve as our caching solutions.
- Message Queue: We leverage Apache RocketMQ, RabbitMQ, and Kafka for efficient message queuing and processing.
- Coordinator: Zookeeper plays a critical role in coordinating various components within our system.
- APM (Application Performance Monitoring): Jaeger and opentracing help us monitor and optimize the performance of our applications.
- Documentation: Springdoc-OpenAPI is used for documenting our APIs.
- Search and Reporting: ElasticSearch is utilized for efficient search and reporting capabilities.
- Log Real-time Visualization: ELK (Elasticsearch, Logstash, Kibana) and Loki are employed for real-time log visualization and analysis.
- Monitoring: Prometheus, Grafana, and CloudWatch are our tools of choice for system monitoring and performance analysis.
- Containerization: Docker and Kubernetes are used for containerization and orchestration of our applications.
- CI/CD (Continuous Integration/Continuous Deployment): Jenkins and ArgoCD support our CI/CD pipelines, ensuring smooth development and deployment processes.
Additional Requirements
In addition to the technology stack, we have certain requirements for our team members:
- Experience working with microservice systems.
- Strong familiarity with Spring Boot, Spring Cloud, and Spring Data.
- Working knowledge of databases, preferably MySQL and Redis.
- The ability to work independently and efficiently within the team.