VivaSoft
Silver Üye
- Katılım
- 20 Ara 2024
- Mesajlar
- 55
- Beğeniler
- 11
- İletişim
BU KONU WEB GELİŞTİRİCİLER İÇİNDİR VE ALTIN DEĞERİNDEDİR
Bugün sizlerle development süreçlerinde hepimizin canını sıkan bir konuya bulduğum çözümü paylaşmak istiyorum. Biliyorsunuz ki client ve server arasındaki iletişim her zaman bizim baş belalarımızdan biri olmuştur. Çoğumuz geliştirme yaparken phpMyAdmin kullanıyoruz ve evet, local'de işimizi bir nebze görüyor ama cPanel'e geçtiğimizde tam bir kabusa dönüşüyor. Sürekli bağlantı kopmaları, yavaşlayan sorgular ve güvenlik sorunlarıyla boğuşup duruyoruz. Ben bu dertlerden bıktıktan sonra Turso.tech'i keşfettim ve açıkçası development hayatım değişti diyebilirim. Turso, libSQL tabanlı (SQLite'ın fork'u) distributed bir veritabanı çözümü. Edge computing altyapısı kullanıyor.
Teknik olarak en etkileyici özelliklerinden biri de embedded replikasyon sistemi. Yani veritabanınızı dünyanın farklı noktalarında replika edebiliyorsunuz ve bu replikalar arasında otomatik senkronizasyon sağlanıyor. ACID özelliklerini tam olarak destekliyor ve distributed sistemlerde bile transaction tutarlılığını garanti ediyor. Ayrıca row-level locking mekanizması sayesinde concurrent işlemleri oldukça verimli bir şekilde yönetebiliyorsunuz.
Güvenlik tarafında da güzel iş görüyor. TLS 1.3 ile şifrelenmiş bağlantılar, JWT tabanlı authentication ve row-level security özellikleri mevcut. Hatta custom SSL sertifikalarınızı bile kullanabiliyorsunuz. Query parametreleri otomatik olarak escape ediliyor ve SQL injection'a karşı koruma sağlıyor. Monitoring tarafında da Prometheus metrics desteği var ve detaylı query analytics sunuyor. Yani hangi sorgunun ne kadar sürede çalıştığını, ne kadar kaynak tükettiğini detaylıca görebiliyorsunuz. Ayrıca slow query log'ları otomatik olarak tutuluyor ve performance bottleneck'leri kolayca tespit edebiliyorsunuz. Fiyatlandırma konusunda da başlangıç için ücretsiz bir plan sunuyor. Aylık 10GB storage ve 1 milyon query'ye kadar ücretsiz kullanabiliyorsunuz ki bu birçok küçük-orta ölçekli proje için fazlasıyla yeterli. Eğer siz de benim gibi veritabanı yönetiminde yaşanan sorunlardan bıktıysanız, kesinlikle bir göz atmanızı öneririm. Özellikle microservice mimarisi kullanan veya globally distributed uygulamalar geliştiren ekipler için biçilmiş kaftan.
DOCS:
Bugün sizlerle development süreçlerinde hepimizin canını sıkan bir konuya bulduğum çözümü paylaşmak istiyorum. Biliyorsunuz ki client ve server arasındaki iletişim her zaman bizim baş belalarımızdan biri olmuştur. Çoğumuz geliştirme yaparken phpMyAdmin kullanıyoruz ve evet, local'de işimizi bir nebze görüyor ama cPanel'e geçtiğimizde tam bir kabusa dönüşüyor. Sürekli bağlantı kopmaları, yavaşlayan sorgular ve güvenlik sorunlarıyla boğuşup duruyoruz. Ben bu dertlerden bıktıktan sonra Turso.tech'i keşfettim ve açıkçası development hayatım değişti diyebilirim. Turso, libSQL tabanlı (SQLite'ın fork'u) distributed bir veritabanı çözümü. Edge computing altyapısı kullanıyor.
Teknik olarak en etkileyici özelliklerinden biri de embedded replikasyon sistemi. Yani veritabanınızı dünyanın farklı noktalarında replika edebiliyorsunuz ve bu replikalar arasında otomatik senkronizasyon sağlanıyor. ACID özelliklerini tam olarak destekliyor ve distributed sistemlerde bile transaction tutarlılığını garanti ediyor. Ayrıca row-level locking mekanizması sayesinde concurrent işlemleri oldukça verimli bir şekilde yönetebiliyorsunuz.
Güvenlik tarafında da güzel iş görüyor. TLS 1.3 ile şifrelenmiş bağlantılar, JWT tabanlı authentication ve row-level security özellikleri mevcut. Hatta custom SSL sertifikalarınızı bile kullanabiliyorsunuz. Query parametreleri otomatik olarak escape ediliyor ve SQL injection'a karşı koruma sağlıyor. Monitoring tarafında da Prometheus metrics desteği var ve detaylı query analytics sunuyor. Yani hangi sorgunun ne kadar sürede çalıştığını, ne kadar kaynak tükettiğini detaylıca görebiliyorsunuz. Ayrıca slow query log'ları otomatik olarak tutuluyor ve performance bottleneck'leri kolayca tespit edebiliyorsunuz. Fiyatlandırma konusunda da başlangıç için ücretsiz bir plan sunuyor. Aylık 10GB storage ve 1 milyon query'ye kadar ücretsiz kullanabiliyorsunuz ki bu birçok küçük-orta ölçekli proje için fazlasıyla yeterli. Eğer siz de benim gibi veritabanı yönetiminde yaşanan sorunlardan bıktıysanız, kesinlikle bir göz atmanızı öneririm. Özellikle microservice mimarisi kullanan veya globally distributed uygulamalar geliştiren ekipler için biçilmiş kaftan.
Kod:
javascript
const { createClient } = require('@turso/client');
// burada bağlantıyı kuruoruz
const client = createClient({
url: process.env.TURSO_DATABASE_URL,
authToken: process.env.TURSO_AUTH_TOKEN,
options: {
timeout: 30000, // 30 saniyelik timeout
retryStrategy: (times) => Math.min(times * 500, 3000) // Exponential backoff
}
});
// trans örneği
async function transferMoney(fromAccount, toAccount, amount) {
const tx = await client.transaction();
try {
await tx.execute({
sql: 'UPDATE accounts SET balance = balance - ? WHERE id = ?',
args: [amount, fromAccount]
});
await tx.execute({
sql: 'UPDATE accounts SET balance = balance + ? WHERE id = ?',
args: [amount, toAccount]
});
await tx.commit();
} catch (error) {
await tx.rollback();
throw error;
}
}
// işlem örneği
async function bulkInsertUsers(users) {
const placeholders = users.map(() => '(?, ?, ?)').join(',');
const values = users.flatMap(user => [user.id, user.name, user.email]);
return await client.execute({
sql: `INSERT INTO users (id, name, email) VALUES ${placeholders}`,
args: values
});
}
DOCS:
Linkleri görebilmek için kayıt olmanız gerekmektedir