Ali Gündoğdu CTO @gensuretech | Maker | Father

Mattermost on bin (10.000) mesaj sınırı ve matrix'e taşınma rehberim

Blog Post Featured Image


Modern yazılım ekosisteminde ekip içi iletişim, sadece mesajlaşmaktan ibaret değil; operasyonun sinir sistemi, kurumsal hafızanın ise ana omurgasıdır. Bu alanda Slack, pazarın tartışmasız devi olarak standartları belirlerken; Rocket.Chat, Zulip ve Mattermost gibi oyuncular, farklı vaatlerle kendilerine yer buldular. Mattermost’u bu kalabalık arasından sıyırıp “teknoloji ekiplerinin favorisi” yapan şey ise basit ama sarsılmaz bir vaatti: Tam denetim ve açık kaynak özgürlüğü.


Mattermost, Go ve React üzerine kurulu mimarisiyle sadece hızlı bir Slack alternatifi değil, aynı zamanda verisini kendi kalesinde tutmak isteyenler için “self-hosted” bir kale gibi pazarlandı. Özellikle GitLab ile olan derin entegrasyonu, geliştirici odaklı iş akışlarını tek bir merkezde toplama becerisi, onu teknik karar vericilerin gözünde rasyonel bir seçenek haline getirdi.


Yaklaşık iki yıl önce, henüz yolun başında bir startup olarak iletişim altyapımızı kurarken önümüzde iki yol vardı: Aylık kullanıcı başı maliyetleri dolar üzerinden hesaplanan, verinin bulutta (ve kontrolümüz dışında) tutulduğu kapalı sistemler veya ipleri tamamen elimizde tutabileceğimiz şeffaf bir yapı.


Türkiye merkezli bir girişim için maliyet yönetimi sadece bir “tasarruf” kalemi değil, bir hayatta kalma stratejisidir. Döviz kurlarındaki dalgalanmalar ve operasyonel verimlilik baskısı altında, Mattermost’un o dönemki “Community Edition” sürümü bize paha biçilemez bir imkan sundu: Kendi sunucumuzda, kendi güvenlik duvarlarımızın arkasında, verinin gerçek sahibi olduğumuz bir çalışma ortamı. KVKK uyumluluğundan tutun da teknik esnekliğe kadar her şey, o gün için “doğru karar” olduğunu fısıldıyordu.


Ancak veri, sadece veritabanında kapladığı baytlar değildir; o, bir kurumun kültürüdür, geçmişteki hataların dersi, başarıların ise tarifidir. Bugün gelinen noktada Mattermost, “Community Edition” ismini “Entry Edition” olarak güncelleyerek sadece bir isim değişikliği yapmadı; bir “dijital hafıza sınırı” getirdi.


10.000 mesaj sınırı, teknik bir limit değil, yapay bir bariyerdir. GitHub ve topluluk forumlarına düşen vakalar, bu kararın sahadaki yıkıcı etkisini net bir şekilde gösteriyor. Örneğin; pandemi döneminden bu yana Mattermost kullanan, 2.000 aktif kullanıcısı ve 470.000’den fazla birikmiş mesajı olan bir eğitim kurumunun, bir sabah uyandığında geçmişteki tüm kolektif bilgisinin “rehin alındığını” görmesi, sadece bir yazılım güncellemesi değildir. Bu, kurumsal hafızanın bir ödeme duvarı (paywall) arkasına hapsedilmesidir.


Bu hamlenin okuması profesyonel dünyada oldukça nettir: Mattermost, artık “ücretsiz” kullanıcıların yükünü taşımak istemiyor. LDAP desteğinin, SAML entegrasyonunun ve geçmişe dönük mesaj erişiminin kısıtlanması, aslında bizlere verilen bir mesaj: “Ya kurumsal (Enterprise) ölçekteki bedelleri ödeyin ya da bu yapıyı terk edin.”


Bu, aslında bir eleme süreci. Startup’ların, küçük toplulukların ve açık kaynak gönüllülerinin yarattığı o devasa ekosistem, ürün rüştünü ispat edip yeterli “kurumsal” olgunluğa eriştikten sonra bir yük olarak görülmeye başlandı. Bizim için Mattermost, artık verimizi koruyan bir kale değil, bizi dışarı iten bir yapıya dönüştü.


İşte bu noktada, bir seçim yapmam gerekiyordu: Dayatılan bu sınırları kabul edip kurumsal hafızamızı her ay “kiralık” bir hale mi getirecektik, yoksa ipleri yeniden elimize alacağımız yeni bir yolculuğa mı çıkacaktık?


Benim için bu yolculuk, sadece bir yazılımdan diğerine geçmek değil, verinin haysiyetini koruma mücadelesine dönüştü.


Binlerce yıl önce, Anadolu’nun kalbinde Hattuşaş’ta Hititler (Hattuşiler), tarihin gördüğü en disiplinli arşivcilik geleneğini başlattılar. Onlar için yazmak sadece bir bürokrasi değil, bir medeniyet inşa etme biçimiydi. Kazandıkları savaşları da, kaybettikleri kıtlıkları da, hatta saraydaki en küçük bir tartışmayı bile kil tabletlere titizlikle kazıdılar. Çünkü biliyorlardı ki; yazıya dökülmeyen her şey unutulmaya, unutulan her şey ise aynı hataları tekrar etmeye mahkumdur.


Bugün “kurum kültürü” dediğimiz şey, aslında o kil tabletlerin modern versiyonları olan veritabanı satırlarında gizli. İki yıl önce atılan bir mesajdaki üslup, bir kriz anında alınan hızlı kararın mantığı veya bir hata sonrası yapılan “post-mortem” analizleri… Hepsi birleşerek bir şirketin DNA’sını oluşturuyor. Mattermost’un getirdiği 10.000 mesajlık sınır, aslında bu DNA’nın sarmallarını kesip atmak, kurumu hafızasız bir organizmaya dönüştürmektir.


Frank Herbert’ın Dune evreninde bilgelerin (Bene Gesserit’lerin veya Mentat’ların) o devasa öngörü gücü, tesadüf değildir. Onlar, geçmişteki tüm atalarının belleklerine erişebilirler; binlerce yıllık birikmiş tecrübe onlara akar. İşte teknoloji dünyasında da bizler, her yeni kararı bu birikmiş hafızanın üzerine inşa ederiz. Eğer geçmişinize erişiminiz kesilirse, geleceğe dair vizyonunuz sadece bir tahminden ibaret kalır.


Anadolu bilgeliğinde çok sevdiğim bir söz vardır: “Yol birdir, sürek bin bir.” Bizim “yolumuz”, verinin özgürlüğü ve kurumsal hafızanın korunmasıdır. Bu yolda yürüdüğümüz araçlar ise sadece birer “sürek”tir; yani o amaca hizmet eden yöntemler. Dün Mattermost bu süreklerden biriydi, bugün ise miadını doldurdu. Çünkü sürek, yolu tıkamaya başladığında, menzile varmak için yeni bir meşale yakmak gerekir.


Peki, Mattermost’u terk ederken nereye gidecektik? Masadaki seçenekleri birer yönetici soğukkanlılığıyla incelediğimizde, her birinin kendi içinde “yapay sınırlar” barındırdığını gördüm:


Rocket.Chat: Güçlü bir alternatif gibi görünse de, mimari olarak oldukça hantal kalabiliyor. Ayrıca tıpkı Mattermost gibi, kurumsal özelliklerin (LDAP, vb.) her an daha sıkı bir ödeme duvarı arkasına saklanma potansiyelini taşıyor. “Bait and switch” (yemle ve değiştir) riskini burada da hissetmek mümkün.


Zulip: Konuşmaları thread (konu başlığı) bazlı yönetme biçimi muazzam. Ancak mobil bildirim (push notification)tarafındaki kısıtlar ve self-hosted kurulumundaki teknik maliyetler, dinamik bir startup ekibi için ileride başka tıkanıklıklara yol açabilirdi.


Bu tartışmayı yaparken, modern iletişimin belki de en “mantıklı” ve kullanıcı dostu çözümünü görmezden gelmek, gerçeklere göz kapamak olur: Discord.


Eğer sadece kullanıcı deneyimi (UX), topluluk yönetimi araçları ve teknik stabilite üzerinden bir puanlama yapsaydık; Discord bugün listedeki tüm rakiplerini geride bırakabilirdi. Ancak bir teknoloji liderinin masasında sadece “kullanım kolaylığı” yazmaz; o masada “sürdürülebilirlik” ve “hukuki zemin” de en az kod kalitesi kadar yer kaplar.


Türkiye özelinde bir startup yönetiyorsanız, Discord maalesef bir “güvenli liman” olmaktan çok uzak. Son dönemde yaşanan erişim engelleri, platformun yasal süreçlerle olan sancılı ilişkisi ve verinin tamamen kapalı bir kutuda, ülke sınırları dışında tutulması, kurumsal hafızayı oraya emanet etmemizi imkansız kılıyor. Bir sabah uyandığınızda ekibinizin ana iletişim kanalının mahkeme kararıyla kapatıldığını görmek, bir CTO için “risk yönetimi” değil, “operasyonel intihar” demektir.


Verinin mülkiyeti ve erişilebilirliği konusunda bu kadar sert bir sınav verirken, bir belirsizlikten çıkıp (Mattermost), başka bir hukuki belirsizliğe (Discord) sığınamazdık. Bu durum bizi tekrar o kadim gerçeğe itti: Kendi kalemizi, kendi toprağımıza kurmak zorundayız.


İşte tam bu noktada radarımıza Matrix.org ve onun referans sunucusu olan Synapse girdi.


Matrix’i sadece bir yazılım olarak değil, bir protokol olarak görmek gerekiyor. Bugün e-posta nasıl bir firmanın tekelinde değilse (Gmail’den Outlook’a mail atabiliyorsak), Matrix de iletişim için aynı şeffaf altyapıyı vaat ediyor.


Şu an Matrix ekosistemindeki repoların büyük bir kısmını Element firması üstlenmiş durumda. Evet, günün birinde Element de Mattermost’un geçtiği o hırslı yola sapabilir. Ancak Matrix’in merkeziyetsiz doğası ve protokol tabanlı yapısı bize bir “sigorta poliçesi” sunuyor: Eğer bir sunucu (Synapse) bizi kısıtlamaya kalkarsa, verimizi başka bir sunucuya taşımak veya kendi özelleştirilmiş yapımızı kurmak, kapalı bir sistemden kaçmaktan çok daha kolay.


Dürüst olmak gerekirse; teknoloji dünyasında hiçbir şeye “tamamen” güvenmemeyi öğrenecek kadar çok fırtına gördüm. Matrix’e de körü körü bağlanmıyorum. Ancak “yol”da kalmak için şu an elimizdeki en hür sürek bu.


Karar verilmişti; Matrix’e geçilecekti. Ancak piyasadaki mevcut “bridge” (köprü) çözümlerini incelediğimde, karşımda hantal ve karmaşık bir yapı buldum. Mevcut araçların çoğu, kurulum aşamasında bile insanı yoran konfigürasyonlar silsilesiyle geliyor, üstelik bir hata anında “kaldığı yerden devam etme” gibi hayati bir esneklikten yoksun çalışıyordu. Sunucular arası dosya taşımalar, manuel ayarlar… Kısacası, veri taşımaktan çok bir “yamalı bohça” dikmeye benziyordu süreç.


bu tarz durumlarda en büyük sorumluluk, sistemi sadece kurmak değil, o sistemin “tertemiz” çalışmasını sağlamaktır. Yarım yamalak aktarılmış, metadata’sı bozulmuş bir arşiv, aslında hiç var olmamış bir arşivdir.


İşte tam bu noktada, içimdeki “Maker” ruhu dizginleri ele aldı. İhtiyacım olan şey, uzak sunucularla boğuşmak yerine kendi lokal makinemden tüm süreci bir orkestra şefi gibi yönetebileceğim, her şeyi “maestro” edinen bir araçtı. Piyasada bulamadığım bu çözümü, kendi planlamam ve son dönemde yazılım geliştirme pratiklerimi dönüştüren “vibe coding” yaklaşımıyla hayata geçirmeye karar verdim.


Aklımdaki mantığı, akış şemalarını ve veri bütünlüğü hassasiyetimi modern AI araçlarının hızıyla birleştirdim. MatrixMigrate böyle doğdu.


Şu an bu araç, sadece bir veri taşıyıcı değil; aktif olarak gelişen, her adımda kendini doğrulayan bir organizma. Tertemiz bir başlangıç yapmak için onlarca kez Synapse kurup siliyorum, her seferinde süreci sıfırdan başlatıp “nerede takılabiliriz?” sorusunun peşine düşüyorum. Çünkü biliyorum ki; “Eğri cetvelden doğru çizgi çıkmaz.” Eğer göç sürecinin temelini sağlam atmazsak, yarın Matrix’te de aynı hafıza sorunlarıyla boğuşuruz. Amacım, sadece veriyi bir yerden bir yere fırlatmak değil; adım adım, “şıkır şıkır” çalışan, hata payını minimize eden bir geçiş koridoru inşa etmek.


Bu yolculuk bana bir kez daha gösterdi ki; teknoloji dünyasında mülkiyet, sadece faturayı ödemekle sahip olunan bir şey değildir. Mülkiyet, verinin üzerinde kurduğunuz egemenliktir.


Aşık nefeslerinde sıkça vurgulandığı gibi; “Yol cümleden uludur.” Bizim yolumuz, bilginin hürriyeti ve kurumsal hafızanın korunmasıdır. Mattermost veya Matrix, bu yolda sadece birer duraktır. Eğer bir durak, yolcunun yükünü hafifletmek yerine ona pranga vurmaya başlıyorsa, orada durmanın bir anlamı kalmaz.


Benim bu süreçteki manifestom net:


  • Hafıza Rehin Alınamaz: Bir ekibin geçmişi, bir şirketin pazarlık kozu olamaz. 10.000 mesajlık bir sınır, teknolojik bir tercih değil, etik bir bariyerdir.

  • Sahiplik Protokolden Gelir: Bir yazılıma değil, bir protokole (Matrix gibi) güvenmek, dijital bağımsızlığın ilk adımıdır.

  • Maker Refleksi Hayat Kurtarır: Eğer pazar size uygun bir anahtar sunmuyorsa, oturup o anahtarı kendiniz dövmelisiniz. Yazılım dünyasında “imkansız” yoktur, sadece “henüz yazılmamış kod” vardır.

  • Temiz Başlangıç, Kalıcı Kültürdür: Yamalı çözümlerle günü kurtarmak, geleceği ipotek altına almaktır. “Maestro” titizliğiyle, her şeyi olması gerektiği gibi inşa etmeliyiz.

Bugün Mattermost’un kapısına koyduğu o turnikeden geçmeyi reddediyoruz. Kendi inşa ettiğimiz köprülerden, kendi hafızamızı omuzlayarak, daha hür bir coğrafyaya yürüyoruz.


Teknoloji dünyasında araçlar gelir geçer. Bugün Mattermost’un iş modelindeki değişim bizi bu göçe zorlamış olabilir, yarın Matrix ekosisteminde de benzer rüzgarlar esebilir. Ancak bir teknoloji liderinin asıl görevi, gemiyi hangi limana bağlayacağından ziyade, o geminin içindeki “yükün” yani kurumsal hafızanın güvenliğini garanti altına almaktır.


Görseller üretilirken Nano Banana Pro Kullanılmıştır.


Meraklısına; yazının ingilizce versiyonuna bu linkten ulaşabilirsiniz.

You might also enjoy