Ответ
Проект был построен на основе микросервисной архитектуры с использованием следующего стека технологий:
Основной стек:
- Backend: Java 11, Spring Boot 2.7.x (Spring MVC, Data JPA, Security, Cloud), Hibernate.
- Базы данных: PostgreSQL (основное хранилище), Redis (для кеширования и сессий).
- Межсервисная коммуникация: REST APIs, Apache Kafka (асинхронная обработка событий).
- Инфраструктура: Docker, Kubernetes (оркестрация), AWS (EC2, RDS, S3).
- Мониторинг: Prometheus, Grafana, ELK Stack (логи).
Пример типичного REST-контроллера из проекта:
@RestController
@RequestMapping("/api/v1/users")
@RequiredArgsConstructor // Lombok для инъекции зависимостей
public class UserController {
private final UserService userService;
@GetMapping("/{id}")
public ResponseEntity<UserResponse> getUser(@PathVariable Long id) {
UserResponse user = userService.getUserById(id);
return ResponseEntity.ok(user);
}
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public UserResponse createUser(@RequestBody @Valid CreateUserRequest request) {
return userService.createUser(request);
}
}
Дополнительно: В проекте использовался CI/CD (GitLab CI), тестирование на основе JUnit 5/Mockito, и применялись принципы Domain-Driven Design (DDD).