Kora фреймворк для написания Java / Kotlin приложений с упором на производительность, эффективность, прозрачность сделанный разработчиками Т-Банк / Тинькофф

Kora is a framework for writing Java / Kotlin applications with a focus on performance, efficiency, transparency made by T-Bank / Tinkoff developers

Главная

Kora - фреймворк общего назначения для написания серверных Java / Kotlin приложений с упором на Производительность, Эффективность, Прозрачность. Kora стремится предоставить достаточно высокоуровневые декларативные инструменты и абстракции для разработчиков, которые на этапе компиляции преобразуются в производительный для железа и понятный для человека код. Фреймворк имеем свой собственный контейнер зависимостей с инверсией управления который работает на этапе компиляции. Kora является облачно ориентированным фреймворком и предлагает множество различных модулей для быстрого создания приложений такие как HTTP сервер, Kafka потребители, абстракция над базой данных в виде репозиториев и многое другое.

Производительность - Kora подразумевает создание сопутствующего высокопроизводительного кода на этапе компиляции, отказ от использования Reflection API во время работы, отказ от динамических прокси, реализацию тонких абстракции и бесплатных аспектов, что ведет к высокой производительности приложения, низкому времени ответа и возможности обрабатывать большое количество запросов в секунду.

Эффективность - Вышеописанные факторы и факт того что контейнер зависимостей создается на этапе компиляции и инициализируется максимально параллельно, позволяет достигнуть низкого времени старта. Также эти факторы позволяют эффективно использовать практики горизонтального масштабирования и максимально утилизировать ресурсы не только в рамках приложения, но и в рамках всего кластера.

Прозрачность - Kora подразумевает создание читаемого исходного кода во время компиляции, что в купе с тонкими абстракциями и бесплатными аспектами ведет к высокой читаемости кода и понимания основных механизмов работы фреймворка со стороны разработчика если требуется, отсутствие эффекта черного ящика где не требуется ни магия вуду, ни потрошители. Kora подразумевает ровно одно наиболее эффективное решение на одну проблему, что дает четкость и понимание в команде разработки. Такой подход также позволяет добиться совместимости с GraalVM из коробки и проверять контейнер зависимостей на этапе компиляции.

Kora предоставляет все необходимые для современной Java / Kotlin серверной разработки инструменты:

  • Внедрение и инверсию зависимостей на этапе компиляции посредствам аннотаций
  • Создание реализаций во время компиляции для декларативно описанных компонент
  • Аспектно-ориентированное программирование посредствам аннотаций
  • Пре-конфигурируемые модули интеграций
  • Легкое и быстрое тестирование с помощью JUnit5
  • Простая, понятная и подробная документация подкрепленная примерами рабочих сервисов