> For the complete documentation index, see [llms.txt](https://sayandev.gitbook.io/sayanvanish/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sayandev.gitbook.io/sayanvanish/api/how-it-works.md).

# How It Works?

SayanVanish uses a modular system to operate independently of specific platforms.

### API Module

The `api` module is designed for universal use across all platforms, providing access to necessary data.

#### User Interface

The `User` interface contains all the basic data you might need. It is structured as follows:

<img src="https://4131497828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnNnKmW3vGL7l3XLFpwa2%2Fuploads%2FG4LYlyE2ejbxUhtF4BxF%2Ffile.excalidraw.svg?alt=media&amp;token=5e46ac11-1cfe-4b54-9ece-1c9e509ff848" alt="" class="gitbook-drawing">

### Database

The main `Database` interface includes all common database functions, which are implemented in various database classes such as SQL or Redis. This database is crucial for syncing data between multiple servers and SayanVanish instances across different networks.

#### Database Structure

The database structure is depicted below:

<img src="https://4131497828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnNnKmW3vGL7l3XLFpwa2%2Fuploads%2FmJCrQY3XvzvuP13B9QWr%2Ffile.excalidraw.svg?alt=media&amp;token=cdbe29f5-5da2-4b6a-a1ab-d7b091a209f4" alt="" class="gitbook-drawing">

<img src="https://4131497828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnNnKmW3vGL7l3XLFpwa2%2Fuploads%2F2QkwJUA34NpUfh2KVRf6%2Ffile.excalidraw.svg?alt=media&amp;token=baf9a129-eb0d-4bb9-818b-c5182bea3e46" alt="" class="gitbook-drawing">

### Features

Features in SayanVanish can be used to implement complex logic with certain constraints:

1. All parameters within a feature must have default values.
2. All parameters should be basic objects like `String`, `Integer`, `Boolean`, etc.

#### Rules for Features

Additionally, adhere to the following rules:

1. Variables that should not be serialized must be annotated with `transient`.

The feature structure is illustrated as follows:

<img src="https://4131497828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnNnKmW3vGL7l3XLFpwa2%2Fuploads%2Fb1LRDCQ4utUFLr6wpe3c%2Ffile.excalidraw.svg?alt=media&amp;token=e0b1958b-3fc7-4f0c-a484-a969bcc90a98" alt="" class="gitbook-drawing">

***

For further details and advanced configurations, continue to the next sections.
