# Introduction to KDK

KDK is mainly powered by the following stack:

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:

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

TIP

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:

WARNING

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.