<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ali şahin BALCIOĞLU</title>
    <description>The latest articles on DEV Community by Ali şahin BALCIOĞLU (@arndevelopment).</description>
    <link>https://dev.to/arndevelopment</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4122326%2F06fa729a-8744-40c5-9765-8f139ad1fc12.jpg</url>
      <title>DEV Community: Ali şahin BALCIOĞLU</title>
      <link>https://dev.to/arndevelopment</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arndevelopment"/>
    <language>en</language>
    <item>
      <title>Kurumsal ulaşım operasyonunu dijitalleştirmek: nereden başlanır</title>
      <dc:creator>Ali şahin BALCIOĞLU</dc:creator>
      <pubDate>Sun, 01 Nov 2026 06:03:43 +0000</pubDate>
      <link>https://dev.to/arndevelopment/kurumsal-ulasim-operasyonunu-dijitallestirmek-nereden-baslanir-20md</link>
      <guid>https://dev.to/arndevelopment/kurumsal-ulasim-operasyonunu-dijitallestirmek-nereden-baslanir-20md</guid>
      <description>&lt;h2&gt;
  
  
  Sorun teknik değil, operasyonel
&lt;/h2&gt;

&lt;p&gt;Saha ile çalışan çoğu firmada ulaşım operasyonu hâlâ aynı şekilde yürüyor: bir WhatsApp grubu, birkaç excel dosyası ve telefonla teyit edilen güzergâhlar. Bu düzen küçük ölçekte işliyor gibi görünür, ama personel sayısı ve araç sayısı büyüdükçe çatlaklar aynı üç yerden açılıyor: kimin nerede olduğunu bilmemek, acente hakedişlerini elle hesaplamak ve bir ihlal yaşandığında geriye dönük kanıt bulamamak. Dijitalleşme kararı genelde bu üç kör noktadan biri patladığında alınıyor — bir sefer gecikmesi, bir hakediş itirazı ya da bir denetimde kayıt gösterememek.&lt;/p&gt;

&lt;h2&gt;
  
  
  İlk soru: neyi göreceksiniz?
&lt;/h2&gt;

&lt;p&gt;Bir kurumsal ulaşım operasyonunu yazılıma taşırken ilk karar görünürlük kapsamını belirlemek. Sahadaki bir müşteri için kurduğumuz personel servis yönetim sisteminde bu kapsamı dört ayrı uygulamaya böldük: yönetim paneli, taşıma acentesi paneli, şoför mobil uygulaması ve personel mobil uygulaması. Bunun nedeni basit — her rolün görmesi gereken bilgi farklı, tek bir ekranda herkese her şeyi göstermeye çalışmak kullanılmayan bir arayüz üretiyor. Şoförün görmesi gereken güzergâh ve durak bilgisi; acente yöneticisinin görmesi gereken filo ve hakediş; yönetimin görmesi gereken ise tüm operasyonun özeti.&lt;/p&gt;

&lt;h2&gt;
  
  
  Konum takibi bir özellik değil, temel
&lt;/h2&gt;

&lt;p&gt;Canlı konum takibini sona bırakılacak bir ek özellik olarak görmüyoruz. Şoför konumu ve sefer durumunu gerçek zamanlı akıtmak — bizim durumumuzda Socket.io ve PostGIS coğrafi sorgularıyla — sistemin geri kalanının üzerine oturduğu zemin. Hakediş hesaplaması, ihlal kaydı, sefer tamamlama onayı; bunların hepsi "bu araç gerçekten o güzergâhta, o saatte oradaydı" bilgisine dayanıyor. Bu bilgi yoksa sistem bir dijital excel'den ibaret kalıyor; var olan sorunu dijital bir kılıfa sarmış olursunuz, çözmüş olmazsınız.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hakediş: elle hesaplanan her şey er geç tartışmalı hale gelir
&lt;/h2&gt;

&lt;p&gt;Çok acenteli bir yapıda — personel servis sisteminde 13 farklı taşıma acentesinin tek sistem üzerinde, verileri birbirinden izole şekilde çalıştığı bir kurulumdan bahsediyoruz — hakediş hesaplaması en hassas nokta. Elle tutulan excel tabloları ay sonunda kimin ne kadar sefer yaptığı, hangi ihlalin kesintiye yol açtığı konusunda tartışma yaratıyor. Bunu otomatikleştirdiğimizde ortaya çıkan şey sadece zaman kazancı değil; itiraz konusu azalıyor çünkü hesaplama mantığı sistemde sabit ve herkes aynı veriye bakıyor.&lt;/p&gt;

&lt;h2&gt;
  
  
  İhlal yönetimi: iz bırakmayan kayıt, kayıt değildir
&lt;/h2&gt;

&lt;p&gt;Sefer ihlallerinin kayıt altına alınması ayrı bir başlık hak ediyor. Bir ihlalin ne zaman, hangi sefer için, hangi gerekçeyle işlendiği iz bırakmıyorsa, bir anlaşmazlık anında elinizde hiçbir şey kalmıyor. Buradan çıkardığımız ders şu: denetlenebilirlik sonradan eklenecek bir katman değil, sistemin tasarımına en baştan girmesi gereken bir gereklilik. Rol bazlı yetkilendirme (süper admin, admin, acente yöneticisi, şoför, personel), OTP'li giriş, JWT rotasyonu ve loglarda PII maskeleme gibi güvenlik kararları da aynı mantığın parçası: kim, neyi, ne zaman yaptı sorusuna her zaman cevap verebilmek.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ölçek büyüdükçe öncelikler değişiyor
&lt;/h2&gt;

&lt;p&gt;Daha büyük ölçekli bir kurumsal ulaşım operasyonunda çalıştığımız bir projede gördüğümüz şey şuydu: küçük ölçekte "görünürlük yeterli mi" sorusu yetiyorken, ölçek büyüdüğünde web ön yüz, backend ve native mobil uygulamanın birlikte, tek bir operasyonel gerçeklik üzerinden çalışması gerekiyor. Burada mimari kararların erken alınması önem kazanıyor; sonradan "aslında web ve mobil farklı veriler gösteriyormuş" demek, güven kaybına yol açan bir hata.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nereden başlamalı
&lt;/h2&gt;

&lt;p&gt;Bize soran firmalara verdiğimiz cevap genelde aynı: önce hangi kör noktanın en çok acı verdiğini bulun.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sorun "kimin nerede olduğunu bilmiyoruz" ise, önce konum ve durum takibini kurun.&lt;/li&gt;
&lt;li&gt;Sorun "hakediş hesapları her ay tartışma yaratıyor" ise, önce otomatik hakediş motorunu kurun.&lt;/li&gt;
&lt;li&gt;Sorun "bir ihlal olduğunda elimizde kanıt kalmıyor" ise, önce kayıt ve denetim katmanını kurun.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Her şeyi aynı anda çözmeye çalışmak, hiçbir şeyi zamanında bitirmemekle sonuçlanıyor. Bütünleşik sistem elbette hedef, ama oraya giden yol kademeli olmalı — önce en acil kör noktayı kapatıp, ardından diğer modülleri üzerine inşa etmek.&lt;/p&gt;

&lt;h2&gt;
  
  
  Önümüzdeki adım: ulaşımın ötesi
&lt;/h2&gt;

&lt;p&gt;Şu an üzerinde çalıştığımız bir seyahat ve rezervasyon yönetimi projesi, bu düşünceyi bir adım öteye taşıyor: kurumsal ulaşımda kurduğumuz görünürlük ve denetlenebilirlik mantığının, seyahat planlaması ve rezervasyon süreçlerine de uygulanabileceğini düşünüyoruz. Bu proje henüz canlı değil, tamamlanmış bir ürün olarak sunmuyoruz — ama bizim için gösterdiği şey şu: manuel, dağınık operasyonları yazılıma taşıma ihtiyacı tek bir sektörle sınırlı değil. WhatsApp grubu ve excel dosyasıyla yönetilen her saha operasyonu aynı üç kör noktadan muzdarip: görünürlük, hakediş, denetim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Kurumsal ulaşım operasyonunu dijitalleştirmek bir yazılım satın alma kararı değil, bir önceliklendirme kararı. Doğru soru "hangi yazılımı alalım" değil, "operasyonumuzun hangi noktası kör ve bu körlük bize ne kadara mal oluyor" sorusu. Bu soruyu doğru cevapladığınızda geri kalanı — mimari, teknoloji seçimi, uygulama sırası — çok daha net hale geliyor.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>webdev</category>
      <category>saas</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Saha Operasyonunda Canlı Konum Takibi: Gerçek Zamanlı Görünürlük Nasıl Kurulur</title>
      <dc:creator>Ali şahin BALCIOĞLU</dc:creator>
      <pubDate>Thu, 01 Oct 2026 06:03:43 +0000</pubDate>
      <link>https://dev.to/arndevelopment/saha-operasyonunda-canli-konum-takibi-gercek-zamanli-gorunurluk-nasil-kurulur-8e4</link>
      <guid>https://dev.to/arndevelopment/saha-operasyonunda-canli-konum-takibi-gercek-zamanli-gorunurluk-nasil-kurulur-8e4</guid>
      <description>&lt;p&gt;Saha operasyonu yürüten firmalarla konuştuğumuzda hep aynı cümleyle başlıyor sohbet: "Şoförün nerede olduğunu bilmiyoruz." İlk bakışta küçük, günlük bir operasyonel rahatsızlık gibi görünüyor. Oysa bu tek cümlenin arkasında üç ayrı kör nokta birikiyor: görünürlük, hakediş ve denetim. Birini çözmeden diğer ikisi de çözülmüyor, çünkü üçü aynı veri eksikliğinden besleniyor.&lt;/p&gt;

&lt;p&gt;Bu yazıda bir personel servis yönetim sistemi üzerinde geliştirdiğimiz canlı konum takibi altyapısından yola çıkarak, saha operasyonunda gerçek zamanlı görünürlüğü nasıl kurduğumuzu anlatıyoruz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Görünürlük eksikliği aslında nerede başlıyor
&lt;/h2&gt;

&lt;p&gt;Çoğu firma personel taşımacılığı, saha ekibi sevkiyatı ya da kurumsal ulaşım gibi operasyonları hâlâ WhatsApp grupları ve elle tutulan Excel dosyalarıyla yönetiyor. Şoför bir gruba "yola çıktım" yazıyor, bir süre sonra "vardım" yazıyor. İkisi arasında geçen süre bir kara kutu. Sefer gecikti mi, nerede gecikti, kaç dakika durdu — bunların hiçbiri kayıt altında değil.&lt;/p&gt;

&lt;p&gt;Bu durumda üç şey aynı anda bozuluyor. Birincisi görünürlük: yöneticinin elinde o anki durumu gösteren bir ekran yok, sadece mesaj geçmişi var. İkincisi hakediş: acenteye ya da şoföre ne kadar ödeneceği, gerçekleşen sefere değil, beyan edilen sefere göre hesaplanıyor. Üçüncüsü denetim: bir ihlal (geç kalkış, güzergah dışına çıkma, durak atlama) yaşandığında bunu kanıtlayacak bir iz yok, sadece karşılıklı anlatılan hikâyeler var.&lt;/p&gt;

&lt;h2&gt;
  
  
  Canlı konum takibi aslında ne çözüyor
&lt;/h2&gt;

&lt;p&gt;Geliştirdiğimiz sistemde şoför mobil uygulaması konum verisini düzenli aralıklarla sunucuya gönderiyor, sunucu bu veriyi Socket.io üzerinden yönetim paneline ve ilgili acente paneline anlık olarak yayıyor. Burada teknik tercih önemli: anlık yayın için klasik istek-cevap (REST polling) yerine soket tabanlı bir bağlantı kullanmak gerekiyor, çünkü her birkaç saniyede bir "şimdi neredesin" diye sormak hem sunucuyu hem de mobil cihazın pil ömrünü gereksiz yere yoruyor.&lt;/p&gt;

&lt;p&gt;Konum verisinin kendisi kadar, bu veriyle ne yapıldığı da önemli. PostGIS kullanarak coğrafi sorguları veritabanı katmanında çalıştırıyoruz: bir aracın belirlenen güzergahtan ne kadar saptığı, bir durağa ne zaman yaklaştığı, bir bölgeye giriş-çıkış yaptığı gibi sorular, uygulama katmanında değil veritabanında cevaplanıyor. Bu, hem performans hem de doğruluk açısından fark yaratıyor — binlerce konum noktasını uygulama tarafında karşılaştırmak yerine, veritabanının bunun için tasarlanmış fonksiyonlarını kullanıyorsunuz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Çok kiracılı yapılarda görünürlük daha da karmaşıklaşıyor
&lt;/h2&gt;

&lt;p&gt;Tek bir şoförün konumunu göstermek nispeten kolay bir problem. Gerçek zorluk, aynı sistemde birden fazla tarafın aynı anda, ama birbirinin verisini görmeden çalışması gerektiğinde ortaya çıkıyor. Geliştirdiğimiz sistemde 13 farklı taşıma acentesi aynı platformu kullanıyor; her acente kendi şoförlerini, kendi seferlerini ve kendi hakedişini görüyor, ama başka bir acentenin verisine erişemiyor.&lt;/p&gt;

&lt;p&gt;Bu izolasyonu arayüzde bir filtre olarak değil, backend katmanında bir kural olarak kurmak gerekiyor. Aksi halde bir gün bir sorgu parametresi değişir, bir acente başka bir acentenin konum verisini görür ve bu basit bir arayüz hatası değil, ciddi bir veri sızıntısı olur. Multi-tenant bir yapıda görünürlük sağlarken asıl mesele "veriyi nasıl gösteririz" değil, "veriyi kime göstermemiz gerektiğini nasıl garanti ederiz" sorusu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Görünürlük, hakediş ve denetimi otomatikleştiriyor
&lt;/h2&gt;

&lt;p&gt;Konum ve sefer verisi gerçek zamanlı ve güvenilir şekilde toplandığında, bunun üzerine iki şey doğal olarak oturuyor. Birincisi otomatik hakediş hesaplama: acente ya da şoför ödemesi, elle girilen bir rakama değil, gerçekleşen sefer verisine dayanıyor. Excel'e veri aktarma, ay sonunda uzlaşma toplantısı yapma ihtiyacı ortadan kalkıyor.&lt;/p&gt;

&lt;p&gt;İkincisi ihlal yönetimi. Bir sefer güzergahtan saptığında ya da bir durak atlandığında bu sistemde otomatik olarak işaretleniyor ve iz bırakıyor. Bu, "o gün öyle olmadı" tartışmalarını büyük ölçüde ortadan kaldırıyor; çünkü artık karşılıklı anlatıya değil, kayıtlı veriye bakılıyor.&lt;/p&gt;

&lt;p&gt;Bunların ikisi de aslında aynı temel fikrin uzantısı: operasyonu gözlemlenebilir hale getirdiğinizde, üzerine kurduğunuz her süreç daha az tartışmalı, daha az manuel hale geliyor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Görünürlük güvenlikten ayrı düşünülemez
&lt;/h2&gt;

&lt;p&gt;Konum verisi hassas bir veridir — bir kişinin nerede olduğunu gösterir. Bu yüzden canlı konum takibi kurarken görünürlüğü artırmakla veriyi korumak arasında bir denge kurmak gerekiyor. Sistemde OTP ile giriş, JWT token rotasyonu ve loglarda kişisel verilerin maskelenmesi gibi önlemler bu dengenin parçası. Görünürlüğü artırmak, herkesin her şeyi görmesi anlamına gelmemeli; kimin neyi ne zaman gördüğü de denetim altında olmalı.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aynı sorun, daha büyük ölçekte
&lt;/h2&gt;

&lt;p&gt;Kurumsal ölçekli ulaşım operasyonlarında bu sorun küçülmüyor, büyüyor. Araç sayısı arttıkça, güzergah çeşitliliği arttıkça, manuel takibin kırılma noktası daha hızlı geliyor. Bu tür operasyonları dijitalleştirirken kurduğumuz web ve mobil bileşenlerin ortak paydası yine aynı: operasyonun o anki durumunu, geçmişe bakmadan, canlı olarak görebilmek.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç olarak
&lt;/h2&gt;

&lt;p&gt;Canlı konum takibi tek başına bir özellik değil, saha operasyonunu yöneten her sürecin üzerine oturduğu bir temel. Görünürlük olmadan hakediş tartışmalı kalıyor, denetim kanıtsız kalıyor, yönetici de operasyonu değil operasyonun anlatısını yönetmiş oluyor. Bizim bu konudaki yaklaşımımız şu: önce veriyi doğru ve güvenli şekilde gerçek zamanlı hale getirin, geri kalan süreçler — hakediş, denetim, raporlama — bu temel üzerine çok daha az sürtünmeyle oturur.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gerçek zamanlı veri için soket tabanlı bağlantı, polling'e tercih edilmeli.&lt;/li&gt;
&lt;li&gt;Coğrafi sorgular uygulama katmanında değil veritabanı katmanında (PostGIS gibi) çalıştırılmalı.&lt;/li&gt;
&lt;li&gt;Çok kiracılı yapılarda veri izolasyonu backend kuralı olmalı, arayüz filtresi değil.&lt;/li&gt;
&lt;li&gt;Görünürlük artarken veri güvenliği (OTP, token rotasyonu, PII maskeleme) aynı özenle kurulmalı.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>softwaredevelopment</category>
      <category>webdev</category>
      <category>saas</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Tek Sistemde Onlarca Acente: Multi-Tenant Mimarinin Sahadaki Karşılığı</title>
      <dc:creator>Ali şahin BALCIOĞLU</dc:creator>
      <pubDate>Tue, 15 Sep 2026 09:06:46 +0000</pubDate>
      <link>https://dev.to/arndevelopment/tek-sistemde-onlarca-acente-multi-tenant-mimarinin-sahadaki-karsiligi-1k7c</link>
      <guid>https://dev.to/arndevelopment/tek-sistemde-onlarca-acente-multi-tenant-mimarinin-sahadaki-karsiligi-1k7c</guid>
      <description>&lt;h2&gt;
  
  
  Problem: Aynı sistem, birbirinden habersiz onlarca işletme
&lt;/h2&gt;

&lt;p&gt;Personel servis taşımacılığı yürüten kurumsal operasyonlarda genellikle tek bir şirket değil, birden fazla taşıma acentesi aynı anda çalışır. Her acentenin kendi araç filosu, kendi şoförleri, kendi hakediş hesabı vardır. Bu tabloyu tek bir yazılımda birleştirmek istediğinizde karşınıza çıkan asıl soru arayüz değil şudur: acente A'nın verisi, hiçbir şekilde acente B'nin ekranına sızmamalı, ama sistem yöneticisi tüm acenteleri tek yerden görebilmeli.&lt;/p&gt;

&lt;p&gt;Bizim geliştirdiğimiz personel servis yönetim sisteminde bu senaryoyu birebir yaşadık. Sistem, 13 farklı taşıma acentesini tek platformda barındırıyor; her biri kendi paneline giriyor, kendi sefer ve şoför verisini yönetiyor, ama hiçbiri diğerinin verisine erişemiyor. Bunu arayüzde bir filtre olarak değil, backend katmanında bir izolasyon kuralı olarak kurduk. Çünkü arayüz seviyesinde yapılan bir "gösterme" işlemi, bir API isteğiyle kolayca aşılabilir; asıl güvenlik sorgunun kendisinde, veritabanı erişim katmanında sağlanmalı.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multi-tenant mimari neden tek çözüm gibi görünür ama değildir
&lt;/h2&gt;

&lt;p&gt;Çoğu ekip "multi-tenant" dediğinde aklına gelen ilk çözüm, her müşteriye ayrı bir veritabanı açmaktır. Bu yaklaşım küçük ölçekte işe yarar ama acente sayısı arttıkça bakım yükü katlanarak büyür: her yeni acente için ayrı şema, ayrı migration, ayrı yedekleme süreci. Bizim tercih ettiğimiz yöntem, tek bir veritabanı üzerinde acente kimliğini her sorgunun zorunlu bir parçası haline getirmekti. Yani bir şoförün konum kaydını çekerken de, bir hakediş raporunu oluştururken de, sorgunun içinde "hangi acente" bilgisi her zaman var ve bu bilgi kullanıcı girdisinden değil, oturum bilgisinden geliyor.&lt;/p&gt;

&lt;p&gt;Bu tasarımın getirdiği asıl kazanım, yeni bir acenteyi sisteme eklemenin bir altyapı işi değil, bir kayıt işi haline gelmesidir. Ölçeklenebilirlik burada teknik bir slogan değil, operasyonel bir gerçek: 13. acenteyi eklemek, 1. acenteyi eklemekten yapısal olarak farklı değil.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roller: Görünürlük herkese aynı şekilde açılmaz
&lt;/h2&gt;

&lt;p&gt;Multi-tenant bir sistemde izolasyon kadar önemli olan ikinci konu, kimin neyi görebileceğidir. Bizim kurduğumuz yapıda beş farklı rol var: süper admin, admin, acente yöneticisi, şoför ve personel. Süper admin tüm acenteleri görür ve sistem genelinde denetim yapar; acente yöneticisi yalnızca kendi filosunu ve kendi hakedişini görür; şoför yalnızca kendi seferini; personel yalnızca kendi servis kaydını. Bu ayrım basit görünse de sahada en çok tartışılan konulardan biridir, çünkü her acente "biraz daha fazla görmek" ister, sistemin bütünlüğü ise net sınırlar gerektirir.&lt;/p&gt;

&lt;p&gt;Rol tasarımını yaparken şunu öğrendik: yetkilendirmeyi sonradan yamamak yerine, veri modelinin en başından itibaren rol bazlı düşünmek gerekiyor. Aksi halde her yeni özellik, "bunu kim görebilir" sorusunu tekrar tekrar açar ve sistem zamanla tutarsız yetki kurallarının birikimi haline gelir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Otomatik hakediş: Excel'in bittiği yer
&lt;/h2&gt;

&lt;p&gt;Çok acenteli operasyonlarda en büyük operasyonel sürtünme noktalarından biri hakediş hesabıdır. Geleneksel yöntemde her acente kendi seferlerini sayar, bir excel dosyası hazırlar, bu dosya yönetim tarafından tek tek kontrol edilir. Bu süreç hem yavaştır hem de hataya açıktır; sefer sayısı arttıkça elle kontrol imkansızlaşır.&lt;/p&gt;

&lt;p&gt;Bizim sistemimizde hakediş hesabı, sefer verisinin kendisinden otomatik olarak türetiliyor. Bir sefer tamamlandığında, o seferin hangi acenteye ait olduğu, hangi şoför tarafından yapıldığı ve hangi durumda sonuçlandığı sistemde zaten kayıtlı; hakediş bu kayıtlardan hesaplanıyor, ayrıca bir excel dosyasına ihtiyaç duyulmuyor. Bu, sadece zaman kazandırmıyor; acente ile yönetim arasındaki "kaç sefer yapıldı" tartışmasını da ortadan kaldırıyor, çünkü herkes aynı kayda bakıyor.&lt;/p&gt;

&lt;h2&gt;
  
  
  İhlal yönetimi ve denetlenebilirlik
&lt;/h2&gt;

&lt;p&gt;Manuel yürütülen servis operasyonlarında bir sefer ihlali (gecikme, güzergah dışına çıkma, eksik personel taşıma gibi durumlar) genellikle sözlü bir şikayetten öteye gitmez; kayıt altına alınmaz, tekrarı takip edilmez. Bizim sistemimizde ihlaller ayrı bir kayıt olarak tutuluyor ve iz bırakıyor. Bu, tek bir olayı cezalandırmak için değil, zaman içindeki örüntüyü görebilmek için önemli: bir acentenin belirli bir şoförü sürekli aynı ihlali yapıyorsa, bu bilgi ancak kayıt sistematik tutulduğunda ortaya çıkar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Güvenlik: Çok acenteli bir sistemde güven tek noktadan kurulur
&lt;/h2&gt;

&lt;p&gt;Onlarca acentenin ve yüzlerce şoförün/personelin aynı sistemi kullandığı bir yapıda kimlik doğrulama tek bir zayıf noktaya indirgenemez. Bizim yaklaşımımızda giriş OTP ile doğrulanıyor, oturum token'ları JWT rotasyonuyla yönetiliyor, yani bir token çalınsa bile ömrü sınırlı ve yenilenme mekanizması var. Loglarda ise kişisel verileri maskeliyoruz; bir hata ayıklama sürecinde bile geliştirici ekranında ham telefon numarası ya da kimlik bilgisi görünmüyor. Çok kiracılı bir sistemde bu tür önlemler lüks değil, sistemin güvenilirliğinin ön koşulu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sahadan çıkan ders
&lt;/h2&gt;

&lt;p&gt;Multi-tenant mimari kurmanın zorluğu kodda değil, kararlarda. Hangi veri paylaşılır, hangi veri asla paylaşılmaz, yeni bir acente eklendiğinde sistemin hangi varsayımları bozulur — bu sorulara baştan net cevap vermeyen bir mimari, acente sayısı arttıkça kırılganlaşır. Biz bu projede izolasyonu backend'de, yetkilendirmeyi rol modelinde, denetimi de kayıt bütünlüğünde kurduğumuz için sistem büyüdükçe karmaşıklaşmadı, sadece genişledi.&lt;/p&gt;

&lt;p&gt;Benzer bir çok paydaşlı operasyonu tek sistemde toplamayı düşünüyorsanız, bu deneyimi konuşmaktan memnuniyet duyarız.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>webdev</category>
      <category>saas</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
