# Introduction to KDK
KDK is mainly powered by the following stack:
- Feathers (opens new window) on the backend side
- Quasar (opens new window) on the frontend side
If you are not familiar with those technologies and want to develop with the KDK, we first recommend studying how they work. To get a deeper overview of some of the internals we also recommend you to read our technical articles on Medium:
- FeathersJS in production: configuration, API prefixing, logging and error catching (opens new window)
- How to setup OAuth flow with FeathersJS (opens new window)
- Enterprise-grade authentication using AWS Cognito and OneLogin with FeathersJS (opens new window)
- Access control strategies with FeathersJS (opens new window)
- Stress testing your FeathersJS application like in production (opens new window)
- FeathersJS in production: password policy and rate limiting (opens new window)
- Mocking custom service queries with FeathersJS (opens new window)
Our main module is simply called kdk (opens new window), available now as a single package @kalisio/kdk (opens new window), but actually composed of two logical parts:
- core containing basic application services and components
- map containing required services and components to build geospatial applications
Although bundled together you can only use the core part without the map part, for instance our application template does not use it. Indeed, on the bakend side related services will not be allocated if the map part is not explicitely used, and on the frontend side Webpack will not bundle unused components.
However, this module also relies on Weacast (opens new window) to manage weather data and feathers-distributed (opens new window) is often used to build microservices architecture, we recommend reading this articles on Medium to get a deeper overview:
- Introducing Weacast (opens new window)
- A use case of microservices with FeathersJS: building a geospatial platform (opens new window)
The KDK was previously available as separated modules like kCore (opens new window)/@kalisio/kdk-core (opens new window), kMap (opens new window)/@kalisio/kdk-map (opens new window), etc. We strongly recommend to upgrade to the latest single package as the features remain similar and development is made easier.
# Application template
A KDK-based application (a.k.a. kApp) usually includes a front-end side client as well as back-end services or an API gateway proxying requests to back-end services. In order to ease the development of new applications we provide you with a KDK application template called the kApp (opens new window) as a starting point. In this guide we will use the template as a reference but most commands will be valid for any KDK-based application.