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:
- FeathersJS in production: configuration, API prefixing, logging and error catching
- How to setup OAuth flow with FeathersJS
- Enterprise-grade authentication using AWS Cognito and OneLogin with FeathersJS
- Access control strategies with FeathersJS
- Stress testing your FeathersJS application like in production
- FeathersJS in production: password policy and rate limiting
- Mocking custom service queries with FeathersJS
Application template
A KDK-based application (a.k.a. skeleton) 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 skeleton as a starting point. In this guide we will use the template as a reference when dealing with KDK-based application.
You can start your journey by running the skeleton.
KDK internals
Our main module is simply called kdk, available now as a single package @kalisio/kdk. It is 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.
WARNING
The KDK was previously available as separated modules like kCore/@kalisio/kdk-core, kMap/@kalisio/kdk-map, etc. We strongly recommend to upgrade to the latest single package as the features remain similar and development is made easier.
The KDK relies on third-party modules which not directly integrated (they can be used as standalone modules), but it might be useful to know more about them. For instance:
- feathers-s3 to manage file upload/download to/from Object Storages like Amazon S3,
- feathers-import-export to import/export data using services API,
- Weacast to manage weather data,
- feathers-distributed to build microservices architectures.
As a consequence, we recommend reading this articles on Medium to get a deeper overview: