> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kazzle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gerçek zamanlı senkronizasyon

> Çevrimdışı desteği ve otomatik arka plan senkronizasyonu ile yerel-öncelikli uygulamalar.

## Nasıl çalışır

Gerçek zamanlı senkronizasyona sahip uygulamalar cihazda yerel bir veritabanı tutar. Okumalar anlık (yerel), yazımlar yerel olarak sıraya alınır ve her şey arka planda sunucuya senkronize edilir.

```text theme={"theme":"material-theme-darker"}
Kullanıcı yazması -> Yerel veritabanı -> Yükleme sırası -> Sunucu -> Postgres
                                                                      |
Kullanıcı okuması <- Yerel veritabanı <- Senkronizasyon çoğaltması <-+
```

Sonuç: anlık okumalar, yükleme göstergeleri yok ve kötü bağlantılarda veya çevrimdışı çalışan bir uygulama.

## AI'ın kurduğu şeyler

AI'dan gerçek zamanlı bir uygulama oluşturmasını isteyin. Uygun bir aktif veritabanı varsa onu yeniden kullanır; aksi takdirde bir veritabanı oluşturur, senkronizasyon hizmetini açar ve iki bölümlü bir uygulama oluşturur:

* **UI** - yerel veritabanı, canlı sorgular ve senkronizasyon bağlayıcısı ile istemci uygulaması
* **Process** - token uç noktası, senkronizasyon yükleme rotası ve geçiş çalıştırıcısı

Kimlik bilgileri [vault](/work/vault) içinde depolanır. AI, veritabanı ortam değişkenlerini `db` aracı ile process bileşenine bağlar.

Uygulama hazır olarak kabul edilmeden önce, veritabanı `sync: ready` göstermelidir. Senkronizasyon hazır değilse, uygulama render edilebilir ancak cihazlar arası gerçek zamanlı veriler çalışmaz.

## Temel kurallar

* Önce yerel olarak yazın. Senkronizasyonun arka planda yüklemesine izin verin.
* Yerel veriler varsa, yükleme göstergeleri değil boş durumları gösterin.
* Kullanıcı tarafından görülen durumu senkronize edilen tablolarda tutun, böylece yenilemeler ve çevrimdışı kullanımda kalır.
* İlgili yerel yazımları birlikte gruplandırın, böylece UI bir adımda güncellenir.
* Gerçek zamanlı bir uygulamayı tamamlanmış olarak işaretlemeden önce senkronizasyon durumunu doğrulayın.

## Çevrimdışı uygulama kabuğu

UI şablonları, uygulamanın ilk ziyaretten sonra ağ olmadan yeniden açılabilmesi için bir çevrimdışı uygulama kabuğu içerebilir. Uygulama kabuğu statik HTML, JS, CSS ve simgelerdir.

* **Çevrimdışı kabuk** uygulamanın ağ olmadan açılmasını sağlar
* **Senkronizasyon** uygulama verilerini çevrimdışı kullanılabilir tutar

Birlikte: uygulama ağ olmadan açılır, en son senkronize edilen verileri gösterir, yeni yazımları sıraya alır ve bağlantı geri geldiğinde senkronize olur.

## Gerçek zamanlı senkronizasyon ne zaman kullanılır

| İyi uyum                               | Gereksiz                              |
| -------------------------------------- | ------------------------------------- |
| Görev yöneticileri ve not uygulamaları | Statik pazarlama sayfaları            |
| İşbirliğine dayalı araçlar             | Tek seferlik form gönderimleri        |
| Zayıf bağlantılı alan uygulamaları     | Salt okunur broşür siteleri           |
| Anlık hissettirilmesi gereken her şey  | Çevrimdışı değeri olmayan uygulamalar |

## Platform değişkenleri

Kazzle, her uygulama procesine otomatik olarak küçük bir ortam değişkenleri seti enjekte eder. Bunlar kendi [vault sırlarınızdan](/work/vault) ayrıdır.

| Değişken                          | Ne olduğu                                                          |
| --------------------------------- | ------------------------------------------------------------------ |
| `PORT`                            | Processinizin dinlemesi gereken port                               |
| `HOST`                            | Bağlanılacak hostname (genellikle `0.0.0.0`)                       |
| `KAZZLE_API_URL`                  | Kazzle çalışma zamanı yardımcıları tarafından kullanılan temel URL |
| `KAZZLE_APP_COMPONENT_<NAME>_URL` | Kardeş bileşenin çalışma zamanı URL'si                             |

### Kardeş URL'leri

Bir uygulamanın birden fazla bileşeni olduğunda (örneğin bir `web` UI ve bir `server` processi), Kazzle kardeş bileşenlerin URL'lerini enjekte edebilir:

```
# "web" bölümünde:
KAZZLE_APP_COMPONENT_SERVER_URL=http://localhost:3001

# "server" bölümünde:
KAZZLE_APP_COMPONENT_WEB_URL=http://localhost:3000
```

Bir kardeş zaten dağıtıldığında, enjekte edilen değer o dağıtılan bileşeni gösterir. Aksi takdirde o kardeş için geçerli geliştirme adresini gösterir.
