Вы самостоятельно проектировали архитектуру в последнем проекте?

«Вы самостоятельно проектировали архитектуру в последнем проекте?» — вопрос из категории Архитектура, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я самостоятельно проектировал архитектуру. Основные решения:

  • Подход: Микросервисная архитектура на Spring Boot.
  • Компоненты:
    • API Gateway (Spring Cloud Gateway) для маршрутизации.
    • Сервис аутентификации (Spring Security + JWT).
    • Сервисы бизнес-логики.
  • Взаимодействие: REST API для синхронных запросов, Apache Kafka для асинхронной обработки событий.
  • СУБД: PostgreSQL с Hibernate в качестве ORM.

Пример кода сервиса заказов:

@RestController
@RequestMapping("/orders")
public class OrderController {
    @Autowired
    private OrderService orderService;

    @PostMapping
    public ResponseEntity<Order> createOrder(@RequestBody OrderDto dto) {
        Order createdOrder = orderService.create(dto);
        return ResponseEntity.ok(createdOrder);
    }
}

Архитектура была выбрана для обеспечения масштабируемости и отказоустойчивости. Решения принимались на основе анализа требований и компромиссов между сложностью и производительностью.