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 подразумевает ровно одно наиболее эффективное решение на одну проблему, использует и поощряет подходы направляющие разработчика писать понятный и эффективный код. Это дает эффективность работы всей команды разработки и позволяет выгружать контекст из головы разработчика в понятный код который легко писать, а впоследствии читать и поддерживать.

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

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

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