Mongoose Transactions ve ACID Desteği Hakkında Bilmeniz Gerekenler
Mongoose Transactions ve ACID Desteği Hakkında Bilmeniz Gerekenler
Mongoose, MongoDB ile çalışan en popüler Node.js kütüphanelerinden biridir. Özellikle büyük ölçekli uygulamalarda veri bütünlüğü sağlamak için Mongoose Transactions ve ACID desteği önemli bir yer tutar. Bu makalede, Mongoose üzerinden transaction yönetiminin ne olduğu ve ACID kavramının MongoDB ile ilişkisi hakkında detaylı bilgi bulabilirsiniz.
Mongoose Transaction Kavramı ve Kullanımı
MongoDB, 4.0 sürümüyle birlikte çoklu döküman işlemlerine (multi-document transaction) tam destek sağlamaya başladı. Mongoose ise session özelliğini kullanarak transaction yönetimini kolaylaştırır. Böylece birden fazla koleksiyonda yaptığınız işlemler ya tamamen gerçekleşir ya da tamamen iptal edilir. Bu özellik, finansal işlemler gibi yüksek güvenlik gerektiren durumlarda oldukça kritiktir.
Mongoose ile Transaction Kod Örneği
const mongoose = require("mongoose");
async function runTransaction() {
const session = await mongoose.startSession();
session.startTransaction();
try {
await User.create([{ name: "Ali" }], { session });
await Account.updateOne(
{ user: "Ali" },
{ $inc: { balance: -100 } },
{ session }
);
await session.commitTransaction();
console.log("Transaction başarıyla tamamlandı.");
} catch (error) {
await session.abortTransaction();
console.error("Transaction hata ile iptal edildi:", error);
} finally {
session.endSession();
}
}
Yukarıdaki örnekte iki farklı koleksiyonda yapılan işlemler tek bir transaction içinde yürütülür. Eğer ikinci adımda bir hata oluşursa, ilk işlem de geri alınır. Böylece veri tutarlılığı korunur.
ACID Özellikleri ve MongoDB Desteği
ACID, Atomicity, Consistency, Isolation ve Durability kavramlarının kısaltmasıdır. Bu kavramlar, veritabanlarında yapılan işlemlerin güvenilirlikle gerçekleşmesini sağlar. Mongoose Transactions ve ACID desteği sayesinde MongoDB artık ACID compliant (uyumlu) işlemler gerçekleştirebilmektedir. Özellikle çoklu döküman işlemlerinde atomicity ve consistency büyük avantajlar sunar.
ACID Terimleri Açıklamaları
- Atomicity: İşlemler ya tamamen yapılır ya da hiç yapılmaz.
- Consistency: Veri bütünlüğü korunur, geçerli durumlar arasında geçiş olur.
- Isolation: Paralel işlemler birbirini etkilemez.
- Durability: İşlem tamamlandığında veriler kalıcı olarak saklanır.
Sonuç
Mongoose Transactions ve ACID desteği, modern Node.js projelerinde veri güvenliğini ve tutarlılığını artırmak için olmazsa olmazlardandır. Eğer yüksek güvenlik gerektiren finansal veya hassas veri işlemleri yapıyorsanız, transaction kullanmak ve ACID uyumluluğundan yararlanmak büyük avantaj sağlar. Mongoose ile transaction başlatma ve yönetme konusunda yukarıdaki kod örneğini kendi projelerinizde kolaylıkla uygulayabilirsiniz.

Yorum Gönder