DataStore
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
15 Ocak 2025 | 1.1.2 | - | - | - |
Bağımlılıkları bildirme
DataStore'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
DataStore'un iki uygulaması vardır: Tercihler ve Proto. İkisinden birini seçin. Ayrıca, her iki uygulamaya da Android'den bağımsız bağımlılıklar ekleyebilirsiniz.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan uygulama bağımlılıkları ekleyin:
Preferences DataStore
Groovy
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation "androidx.datastore:datastore-preferences:1.1.2" // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.2" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.2" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-preferences-core:1.1.2" }
Kotlin
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation("androidx.datastore:datastore-preferences:1.1.2") // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.2") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.2") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-preferences-core:1.1.2") }
Proto DataStore
Groovy
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation "androidx.datastore:datastore:1.1.2" // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.1.2" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.1.2" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-core:1.1.2" }
Kotlin
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation("androidx.datastore:datastore:1.1.2") // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.1.2") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.1.2") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-core:1.1.2") }
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.1
Sürüm 1.1.2
15 Ocak 2025
androidx.datastore:datastore-*:1.1.2
yayınlanır. 1.1.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Sıcak okuma gecikmesini (
DataStore.data.first()
) 8 kat iyileştirin. (22b8a40) ReplaceFileCorruptionHandler
, KMP ortak kodundan oluşturulabilir. (7632e839)
Sürüm 1.1.1
1 Mayıs 2024
androidx.datastore:datastore-*:1.1.1
yayınlanır. 1.1.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Birden fazla
DataStore
örneğinin, dosya kilidini bırakarak farklı işlemlerden yazmaya çalıştığı uç bir durumda "Kaynak kilitlenmesi gerçekleşecek" hatası için Linux'da azaltılmış yanlış alarm.
Sürüm 1.1.0
17 Nisan 2024
androidx.datastore:datastore-*:1.1.0
yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
Daha fazla bilgi için lütfen 1.1.0'ın alfa ve beta sürümlerindeki sürüm notlarını inceleyin. 1.1.0'daki önemli güncellemelerden bazıları şunlardır:
- DataStore artık aynı dosyaya erişen birden fazla işlemi desteklemektedir. Ayrıca, işlemler arasında gözlemlenebilirlik desteği de sunmaktadır.
- Yeni Depolama arayüzü, veri modellerinizi nasıl depolayacağınızı veya serileştireceğinizi özelleştirmenize olanak tanır.
- Artık Kotlin Multiplatform projelerinde DataStore'u kullanabilirsiniz.
Sürüm 1.1.0-rc01
3 Nisan 2024
androidx.datastore:datastore-*:1.1.0-rc01
yayınlanır. 1.1.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Yeni veriler eski verilerle aynıysa
updateData
çağrılarının disk yazmalarında optimizasyon yapmadığı performans düşüşü düzeltildi (d64cfb5) MultiProcess
DataStore
'ın başlatma sırasında geçersiz kılma işlemlerini kaçırabileceği bir yarış durumu düzeltildi. ((b/326141553),(094c2dd))
Sürüm 1.1.0-beta02
6 Mart 2024
androidx.datastore:datastore-*:1.1.0-beta02
yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
DataStore
'teki performans iyileştirmesi yalnızca güncelleme bildirimleri gözlemlendiğinde toplanır. (b/267792241)- Coroutines test kitaplığını kullanıyorsanız bu değişikliğin testlerinizde
UncompletedCoroutinesError
hatasını tetikleyebileceğini unutmayın. Bu sorunu önlemek için testlerinizdeDataStore
'ı başlatırkenTestScope.backgroundScope
değerini ilettiğinizden emin olun.
- Coroutines test kitaplığını kullanıyorsanız bu değişikliğin testlerinizde
- Aynı örnekte iç içe yerleştirilmiş
updateData
çağrılarının kilitlenme sorunu düzeltildi. (b/241760537) - Taşıma sırasında
SharedPreferences
silinemezseDataStore
artıkIOExceptions
hatası atmaz. (b/195553816) - Android olmayan JVM ortamlarında
updateData
sırasında dosya yeniden adlandırma işleminin başarısız olması sorunu düzeltildi. (b/203087070) DataStore
başlatıldıktan sonraCorruptionException
'ün işlenmemesi sorunu düzeltildi. (b/289582516)
Sürüm 1.1.0-beta01
10 Ocak 2024
androidx.datastore:datastore-*:1.1.0-beta01
, 1.1.0-alpha07
tarihinden bu yana herhangi bir değişiklik içermeden yayınlandı. 1.1.0-beta01 sürümü bu taahhütleri içerir.
Sürüm 1.1.0-alpha07
29 Kasım 2023
androidx.datastore:datastore-*:1.1.0-alpha07
yayınlanır. 1.1.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
MultiProcessDataStoreFactory
yöntemleri artık deneysel değildir.@ExperimentalMultiProcessDataStore
ek açıklaması tamamen kaldırılmıştır. (Ieee54, I8e607)
Hata Düzeltmeleri
@ExperimentalMultiProcessDataStore
ek açıklamalarının kaldırılması özelliği 1.1.0-alpha07 sürümünde kullanıma sunuldu. (I8e607)
Sürüm 1.1.0-alpha06
1 Kasım 2023
androidx.datastore:datastore-*:1.1.0-alpha06
yayınlanır. 1.1.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
createSingleProcessCoordinator
fabrika yöntemi artıkcreateMultiProcessCoordinator
ile tutarlı olması için bir dosya yolu (String
,java.io.File
veokio.Path
) alıyor. (I211c8, b/305755935)
Sürüm 1.1.0-alpha05
6 Eylül 2023
androidx.datastore:datastore-*:1.1.0-alpha05
yayınlanır. 1.1.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
FileStorage
veri kümesi artık herkese açık olduğundan istemciler özel parametreler sağlayabilir. (Icb985)OkioStorage
oluşturucusu, Android'deMultiProcessCoordinator
ile kullanılabilmesi içinInterProcessCoordinator
kabul edecek şekilde değiştirildi. (Iecea3)
Hata Düzeltmeleri
MultiProcessCoordinator
aynı dizinde birden fazla dosyayı izleyememe sorunu düzeltildi.- Dosya yolları normalleştirilmemişse yinelenen dosyaların algılanamaması sorunu düzeltildi.
RxDataStore#isDisposed
kaynağından döndürülen yanlış değerleri düzeltin.datstore-preferences-core
yapı için eksik ProGuard yapılandırmasını düzeltin.
Sürüm 1.1.0-alpha04
5 Nisan 2023
androidx.datastore:datastore-*:1.1.0-alpha04
yayınlanır. 1.1.0-alpha04 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
DataStore
veri akışının güncelleme sonrasında eski bir değer yayınlayabileceği bir yarış koşulunu önlemek için dahili uygulamayı iyileştirin.
Sürüm 1.1.0-alpha03
24 Mart 2023
androidx.datastore:datastore-*:1.1.0-alpha03
yayınlanır.
Hata Düzeltmeleri
- Kotlin Native hedeflerindeki bir derleme sorununu gidermek için Maven yapılarından bağımlılık kısıtlamaları kaldırıldı (b/274786186, KT-57531).
Sürüm 1.1.0-alpha02
22 Mart 2023
androidx.datastore:datastore-*:1.1.0-alpha02
yayınlanır. 1.1.0-alpha02 sürümü bu taahhütleri içerir.
Not
Bu sürümde, tek işlemli ve çok işlemli DataStore uygulamalarını birleştiren önemli bir dahili yeniden yapılandırmanın yer aldığını unutmayın. Lütfen istenmeyen davranış değişikliklerine (ör. güncelleme bildirimlerinin zamanlaması) dikkat edin. Bu tür değişiklikleri bildirmek için sorun izleyici bileşenini kullanabilirsiniz.
Yeni Özellikler
- Artık
DataStore
'ü KMM projelerinde kullanabilirsiniz. DataStore'un Android dışındaki hedeflerinin hâlâ deneysel olduğunu ancak geliştiricilerin bunları denemesini kolaylaştırmak için sürümleri birleştirmeye karar verdiğimizi unutmayın. - Çoklu işlem özellikleri
androidx.datastore.multiprocess
'tenandroidx.datastore.core
'e taşınır. - Dosya işlemleri için
Storage
nesneleri içeren DataStore örnekleri oluşturmak üzereandroidx.datastore.core.MultiProcessDataStoreFactory
içine yeni bir fabrika yöntemi ekleyin. - Birden fazla DataStore örneğinin süreçler arasında iletişim kurmasına yardımcı olan yeni bir arayüz
InterProcessCoordinator
ekleyin.InterProcessCoordinator
'ün çoklu işlemli uygulamasını yalnızca Android'de kullanabileceğinizi unutmayın.
API Değişiklikleri
- datastore-core arayüzünde
InterProcessCoordinator
öğesiniStorageConnection
öğesine ekleme (I555bb) - Datastore-core
MultiProcessDataStoreFactory
API'lerini Storage'ı kullanacak şekilde değiştirin. (Iac02f) - datastore-multiprocess'teki herkese açık API'leri datastore-core'a taşıma (I76d7c)
- datastore-preferences-core (I4b788) kaynağından
PreferencesSerializer
gösteriliyor @JvmDefaultWithCompatibility
ek açıklaması (I8f206) ekleniyor
Sürüm 1.1.0-alpha01
9 Kasım 2022
androidx.datastore:datastore-*:1.1.0-alpha01
yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- İşlemler genelindeki
DataStore
örnekleri arasında veri tutarlılığının garanti edildiği çok işlemli kullanım alanlarını destekler. Bu türDataStore
örnekleri oluşturmak içinMultiProcessDataStoreFactory#create
ekleyin. Datastore
için temel depolama mekanizmasının değiştirilmesine olanak tanıyan yeni depolama arayüzü. java.io ve okio için uygulamalar sağlanır.DataStore
fabrikalarında bu Storage nesnesini kabul eden yeni yöntemler vardır.
API Değişiklikleri
- Datastore-core
MultiProcessDataStoreFactory
API'lerini Storage'ı kullanacak şekilde değiştirin. (Iac02f) - datastore-multiprocess'teki herkese açık API'leri datastore-core'a taşıma (I76d7c)
- datastore-preferences-core (I4b788) kaynağından
PreferencesSerializer
gösteriliyor
Sürüm 1.0.0
Sürüm 1.0.0
4 Ağustos 2021
androidx.datastore:datastore-*:1.0.0
yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünün önemli özellikleri
Jetpack DataStore, anahtar/değer çiftlerini veya türlenmiş nesneleri protokol arabellekleriyle depolamanıza olanak tanıyan bir veri depolama çözümüdür. DataStore, verileri asenkron, tutarlı ve işlemsel olarak depolamak için Kotlin coroutine'lerini ve Flow'u kullanır.
Sürüm 1.0.0-rc02
21 Temmuz 2021
androidx.datastore:datastore-*:1.0.0-rc02
yayınlanır. 1.0.0-rc02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Anahtar yoksa
SharedPreferencesMigration
'ün çalışmadığını açıklayın. (Icfa32, b/192824325) - İstenen anahtar henüz mevcut değilse
MIGRATE_ALL_KEYS
ile oluşturulanSharedPreferencesMigration
'ün istisna atma sorunu düzeltildi. (Ie318a, b/192824325)
Sürüm 1.0.0-rc01
30 Haziran 2021
androidx.datastore:datastore-*:1.0.0-rc01
yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- .java dosyasının yanlışlıkla nihai jar dosyasına eklenmesiyle ilgili hata düzeltildi (I65d96, b/188985637)
Sürüm 1.0.0-beta02
16 Haziran 2021
androidx.datastore:datastore-*:1.0.0-beta02
yayınlanır. 1.0.0-beta02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
ClassVerificationFailure
sorununu düzeltme (b/187450483)
Sürüm 1.0.0-beta01
21 Nisan 2021
androidx.datastore:datastore-*:1.0.0-beta01
yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Yalnızca Kotlin yöntemleri için JVM aşırı yüklemelerini kaldırın (I2adc7)
Hata Düzeltmeleri
- Veri deposu temsilcilerinin bağlam sızıntısına neden olabileceği bir hata düzeltildi (Ie96fc, b/184415662)
Sürüm 1.0.0-alpha08
10 Mart 2021
androidx.datastore:datastore-*:1.0.0-alpha08
yayınlanır. 1.0.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Artık
dataStore
vepreferencesDataStore
mülk temsilcinize bağlama bağlı bir taşıma işlemi ekleyebilirsiniz. (I4ef69, b/173726702) - Artık datastore temsilcisi veya context.createDataStore'u kullanmıyorsanız dosyanın adını almak için yardımcı işlevler ekler (I60f9a)
- Serializer writeTo ve readFrom artık askıya alınıyor. Bir serileştirici uyguladıysanız işlevlerinizi askıya alma işlevi olacak şekilde güncellemeniz gerekir. (I1e58e)
- RxDataStore kullanıcıları için mülk temsilcileri eklendi. (Ied768, b/173726702)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları uygulama (I6aa29, b/174531520)
Sürüm 1.0.0-alpha07
24 Şubat 2021
androidx.datastore:datastore-*:1.0.0-alpha07
yayınlanır. 1.0.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
Context.createDataStore
uzantı işlevi kaldırıldı ve globalDataStore mülk temsilcisiyle değiştirildi. globalDataStore'u kotlin dosyanızdaki üst düzeyde bir kez çağırın. Örnek:val Context.myDataStore by dataStore(...)
Bunun yalnızca bir örneği olması için kotlin dosyanızın üst düzeyine koyun. (I57215, b/173726702)
RxDataStore işlevleri artık DataStore'daki uzantı işlevleri yerine RxDataStore sınıfındadır. (Idccdb, b/177691248)
EncryptedSharedPreferences'i (veya doğrudan önyükleme SharedPreferences'ini) DataStore'a taşımak istiyorsanız artık SharedPreferences'i eklemenize olanak tanıyan yeni SharedPreferencesMigration kurucusunu kullanarak bunu yapabilirsiniz. (I8e04e, b/177278510)
Hata Düzeltmeleri
- Aynı dosya için birden fazla etkin DataStore varsa DataStore artık istisna atar. DataStore'unuzu tekil olarak yönetmiyorsanız veya bir dosya için aynı anda iki DataStore örneğinin etkin olmadığından emin olmuyorsanız artık DataStore'u okurken veya DataStore'a yazarken istisnalar görebilirsiniz. Bu sorunlar, DataStore'unuzu tekil olarak yöneterek düzeltilebilir. (Ib43f4, b/177691248)
- Arayan kapsamı iptal edildiğinde iptal davranışını düzeltin. (I2c7b3)
Sürüm 1.0.0-alpha06
13 Ocak 2021
androidx.datastore:datastore-*:1.0.0-alpha06
yayınlanır. 1.0.0-alpha06 sürümü bu taahhütleri içerir.
Yeni Özellikler
- DataStore için RxJava sarmalayıcıları eklendi.
datastore-rxjava2/3
yapıları, temel DataStore API'leri (RxDataStore
,RxDataStoreBuilder
veRxDataMigration
) için sarmalayıcıları içerir.datastore-preferences-rxjava2/3
yapıları, Preferences DataStore'u oluşturmak için bir oluşturucu içerir.
API Değişiklikleri
- CorruptionHandler arayüzünü gizleyin. DataStore fabrikası yalnızca ReplaceFileCorruptionHandler'ı kabul ettiğinden, bu sınıfın herkese açık olması için bir neden yoktu. (I0b3b3, b/176032264)
preferencesKey<T>(name: String): Key<T>
yöntemi kaldırıldı ve her desteklenen türe özgü yöntemlerle değiştirildi. Örneğin,preferencesKey<Int>("int")
artıkintPreferencesKey("int")
(Ibcfac, b/170311106)
Hata Düzeltmeleri
- Veri mağazası dosyasının "datastore/" alt klasöründe oluşturulduğu gerçeğinin atlandığı DataStoreFactory dokümanında düzeltme yapıldı. (Ica222)
Sürüm 1.0.0-alpha05
2 Aralık 2020
androidx.datastore:datastore-*:1.0.0-alpha05
yayınlanır. 1.0.0-alpha05 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Veri depolarından eşzamanlı yazma işlemleriyle ilgili daha iyi dokümanlar ve istisnalar ekleyin. (Ia98a2, b/173522155, b/173726702)
- Artık
Serializer.writeTo()
'e iletilen OutputStream'in kapatılmasına izin veriyoruz (ancak bunu zorunlu tutmuyoruz). (I5c9bf, b/173037611)
Sürüm 1.0.0-alpha04
17 Kasım 2020
androidx.datastore:datastore-*:1.0.0-alpha04
yayınlanır. 1.0.0-alpha04 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Tercih Datastore'unda
1.0.0-alpha03
aşağıdaki kilitlenmeye neden olan bir paketleme sorunu düzeltildi:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences
- Kilitlenme ilk olarak şurada bildirildi: b/173036843
- (I4712d, b/173036843)
Sürüm 1.0.0-alpha03
11 Kasım 2020
androidx.datastore:datastore-*:1.0.0-alpha03
yayınlanır. 1.0.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Tercihler artık çift değerleri destekler (kayan noktalı sayılardan daha fazla hassasiyete ihtiyacınız varsa kullanışlıdır) (I5be8f, b/169471808)
API Değişiklikleri
- Daha hızlı derlemeye olanak tanımak için veri deposu için saf bir Kotlin bağımlılığı oluşturuldu.
androidx.datastore:datastore-core
yalnızca temel Kotlin API'lerini,androidx.datastore:datastore
ise Android'e bağlı API'leri (SharedPreferencesMigration
veContext.createDataStore
kurucusu dahil) içerir.)(I42d75, b/168512698) - Daha hızlı Kotlin derlemesi için tercihler veri deposu hedeflerini bölme (Ia3c19)
Sıralılaştırıcılar artık diskte veri yoksa kullanılacak varsayılan değer için yeni bir özelliğe ihtiyaç duyuyor. Bu, özel serileştiricilerin uygulanmasını kolaylaştırır. Böylece kullanıcıların boş giriş akışları için özel işlem yapması gerekmez (boş giriş akışları json ile ayrıştırılmaz).
- Ayrıca, writeTo() işlevine sağlanan çıkış akışının kapalı olmadığını doğrulamak için bir kontrol eklendi. Kapalıysa istisnalar atılır (I16e29).
SharedPreferencesView sınıfının kurucusunu dahili hale getirme. Başlangıçta testlere izin vermek için herkese açıktı. Bunun yerine, testler bir SharedPreferencesMigration oluşturup buna göre test yapmalıdır. (I93891)
Hata Düzeltmeleri
DataStoreFactory
vePreferenceDataStoreFactory
'dekiproduceFile
parametresi artık listedeki son parametre olduğundan kotlin son lambda söz dizimini kullanmanıza olanak tanır. (Ibe7f1, b/169425442)- Kotlin için yeni açık API koşullarını yerine getirme (I5ae1e)
Bilinen sorunlar
- Tercih Datastore'u
java.lang.NoClassDefFoundError
ile kilitleniyor. (b/173036843)
Sürüm 1.0.0-alpha02
14 Ekim 2020
androidx.datastore:datastore-core:1.0.0-alpha02
ve androidx.datastore:datastore-preferences:1.0.0-alpha02
yayınlandı. 1.0.0-alpha02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- datastore-core'a mutasyona karşı bir koruma eklendi. Değişiklik, Datastore'u proto/tercih dışı türlerle kullanan kullanıcılar için Datastore kullanımını bozuyor (I6aa84)
- Preferences.kt dosyasına, mevcut durumun hata ayıklanmasını kolaylaştırmak için bir
toString
yöntemi eklendi (I96006) DataStore.Preferences
(I1134d) özelliğinin kötüye kullanımına karşı koruma sağlamak için bir istisna eklendi- Uygulamanın başlangıçta kilitlenmesine neden olan bir hata düzeltildi (I69237, b/168580258)
Sürüm 1.0.0-alpha01
2 Eylül 2020
androidx.datastore:datastore-core:1.0.0-alpha01
ve androidx.datastore:datastore-preferences:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
Jetpack DataStore, SharedPreferences'in yerini almayı amaçlayan yeni ve geliştirilmiş bir veri depolama çözümüdür. Kotlin coroutine'leri ve Flow'a dayalı DataStore iki farklı uygulama sağlar:
- Türe dayalı nesneleri (protokol arabellekleriyle desteklenir) depolamanıza olanak tanıyan Proto DataStore
- Anahtar/değer çiftlerini depolayan Preferences DataStore
Veriler, SharedPreferences'in dezavantajlarının çoğunu ortadan kaldırarak asenkron, tutarlı ve işlemsel olarak saklanır.