<commit_before>---
layout: page
title: Architecture overview
permalink: /:path/
sort_idx: 15
---

{% include variables.md %}

* TOC
{:toc}

First things first, let us take a look at some fundamental concepts necessary for understanding the Kaa architecture and the logical design.

The Kaa IoT platform consists of the *Kaa server*, *Kaa extensions*, and *endpoint SDKs*.

* The Kaa server implements the back-end part of the platform, performs tenants, applications, users, and devices management, exposes integration interfaces,
and offers administrative capabilities.
* Kaa extensions are independent software modules that improve the platform functionality. (In this version of the documentation you will notice some
extensions actually managed within the core platform code base. Those are planned to be fully decoupled in future Kaa releases.)
* Endpoint SDK is a library which provides client-side APIs for the various [Kaa platform features]({{root_url}}Programming-guide/Key-platform-features/) and
handles communication, data marshalling, persistence, etc.<commit_msg>KAA-1125: Architectural overview - initial commit.<commit_after>---
layout: page
title: Architecture overview
permalink: /:path/
sort_idx: 15
---

{% include variables.md %}

* TOC
{:toc}

This section discusses fundamental concepts behind Kaa architecture and logical design.

[Kaa IoT platform]({{root_url}}Glossary/#kaa-platform) consists of [Kaa server]({{root_url}}Glossary/#kaa-server), [Kaa extensions]({{root_url}}Glossary/#kaa-extensions), and the [endpoint SDKs]({{root_url}}Glossary/#endpoint-sdk).

* Kaa server is the back-end part of the platform.
It is used to manage tenants, applications, users and devices.
Kaa server exposes integration interfaces and offers administrative capabilities.
* Kaa extensions are independent software modules that improve the platform functionality.

	>**NOTE:** In this version of the documentation, you will notice that some extensions are actually managed within the core of the platform.
	>Those are planned to be fully decoupled in future Kaa releases.
	{:.note}

* Endpoint SDK is a library that provides client-side APIs for various [Kaa platform features]({{root_url}}Programming-guide/Key-platform-features/) and handles communication, data marshalling, persistence, etc.
{'fraction_non_alphanumeric': 0.08196010407632263, 'fraction_numerical': 0.003469210754553339, 'mean_word_length': 5.37292817679558, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7569329', 'n_tokens_mistral': 616, 'n_tokens_neox': 568, 'n_words': 272}