<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Arsitektur on Blogfolio Najib</title>
		<link>https://najib.id/tags/arsitektur/</link>
		<description>Recent content in Arsitektur on Blogfolio Najib</description>
		<generator>Hugo</generator>
		<language>id-ID</language>
		
		
		
			<copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright>
		
		
			<lastBuildDate>Thu, 04 Jun 2026 13:12:35 +0700</lastBuildDate>
		
			<atom:link href="https://najib.id/tags/arsitektur/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Best Practice Membangun API di Laravel dan Go: Catatan dari Proyek Nyata</title>
				<link>https://najib.id/writing/2026/laravel-go-api-best-practice/</link>
				<pubDate>Thu, 07 May 2026 10:28:00 +0700</pubDate>
				<guid>https://najib.id/writing/2026/laravel-go-api-best-practice/</guid>
				<description>&lt;p&gt;Di proyek migrasi PHP ke Go yang saya kerjakan, ada &lt;em&gt;phase&lt;/em&gt; di mana saya harus &lt;em&gt;audit&lt;/em&gt; semua &lt;em&gt;route&lt;/em&gt; dan &lt;em&gt;controller&lt;/em&gt; yang sudah ada. Tujuannya sederhana: sebelum migrasi, harus pahami dulu &lt;em&gt;pattern&lt;/em&gt; apa yang sudah bagus dan mana yang harus ditinggalkan. Hasilnya? &lt;em&gt;Yah&lt;/em&gt;, cukup&amp;hellip; &lt;em&gt;enlightening&lt;/em&gt; hahaha.&lt;/p&gt;&#xA;&lt;p&gt;Proyek ini punya profil seperti ini:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;460+ route&lt;/strong&gt; di &lt;code&gt;api.php&lt;/code&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;58 controller&lt;/strong&gt; dengan berbagai ukuran dan &lt;em&gt;pattern&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;5 auth guard&lt;/strong&gt;: &lt;code&gt;user-api&lt;/code&gt;, &lt;code&gt;partner-api&lt;/code&gt;, &lt;code&gt;open-api&lt;/code&gt;, &lt;code&gt;open-api-limited&lt;/code&gt;, &lt;code&gt;tms-api&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rate limiting&lt;/strong&gt; yang bervariasi: dari 3/menit sampai 100/menit&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Artikel ini bukan tutorial &lt;em&gt;&amp;ldquo;cara bikin API&amp;rdquo;&lt;/em&gt;. Ini catatan &lt;em&gt;pattern&lt;/em&gt; dan &lt;em&gt;anti-pattern&lt;/em&gt; yang saya temukan, plus bagaimana &lt;em&gt;pattern&lt;/em&gt; yang sama diimplementasi di Go. Jadi kalau kamu lagi &lt;em&gt;migrate&lt;/em&gt; atau mulai proyek baru, &lt;em&gt;hopefully&lt;/em&gt; bisa &lt;em&gt;skip&lt;/em&gt; beberapa kesalahan yang sudah saya temukan hehe~&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pemilihan Tech Stack: Antara Ego dan Bisnis</title>
				<link>https://najib.id/writing/2026/tech-stack-ego-vs-business/</link>
				<pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://najib.id/writing/2026/tech-stack-ego-vs-business/</guid>
				<description>&lt;p&gt;&lt;em&gt;Nganu&lt;/em&gt;, jadi beberapa waktu lalu saya duduk di sebuah rapat internal, entah via Zoom, entah via Google Meet, sudah lupa. Yang jelas, seorang rekan tiba-tiba semangat sekali mengusulkan sesuatu:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;&amp;ldquo;Gimana kalau kita migrasi ke microservices sekalian? Biar modern, biar scalable, biar-&amp;rdquo;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;Biar apa?&lt;/em&gt; Sistem kami saat itu punya dua fitur utama, satu tim kecil berisi empat orang, dan &lt;em&gt;traffic&lt;/em&gt; yang paling sibuknya pun tidak sampai seribuan &lt;em&gt;request&lt;/em&gt; per hari. Kebutuhan &lt;em&gt;microservices&lt;/em&gt;? Nol. Tapi semangatnya&amp;hellip; seratus hahaha.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Clean Architecture: Dari Spaghetti Code ke Kode yang Bisa Dibaca Ulang</title>
				<link>https://najib.id/writing/2026/clean-architecture-intro/</link>
				<pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://najib.id/writing/2026/clean-architecture-intro/</guid>
				<description>&lt;p&gt;Saya pernah nulis kode yang saat itu &lt;em&gt;sense banget&lt;/em&gt;. Logikanya jelas, alurnya rapi, &lt;em&gt;variabel&lt;/em&gt;-nya deskriptif. Tiga bulan kemudian, buka lagi file yang sama, &lt;em&gt;&amp;ldquo;ini tadi mau ngapain sih?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Nganu&lt;/em&gt;, kalau kamu pernah merasakan hal yang sama, selamat datang. Kamu tidak sendirian hehe.&lt;/p&gt;&#xA;&lt;p&gt;Tulisan ini bukan kuliah formal tentang arsitektur &lt;em&gt;software&lt;/em&gt;. Ini catatan saya tentang &lt;strong&gt;Clean Architecture&lt;/strong&gt;, dijelaskan dengan cara yang saya sendiri pengen dulu dengar waktu masih kuliah, bukan dengan istilah-istilah yang bikin pusing.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Catatan Keputusan: Kapan Tech Stack Harus Dimigrasi</title>
				<link>https://najib.id/writing/2026/tech-stack-migration-decision/</link>
				<pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://najib.id/writing/2026/tech-stack-migration-decision/</guid>
				<description>&lt;p&gt;Ada momen di mana saya berhenti ngetik, &lt;em&gt;lean back&lt;/em&gt; di kursi, dan sadar: &lt;em&gt;&amp;ldquo;Ini bukan lagi soal refactor.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Waktu itu saya lagi &lt;em&gt;nge-debug&lt;/em&gt; satu &lt;em&gt;bug&lt;/em&gt; di sistem GPS &lt;em&gt;tracker&lt;/em&gt; yang sudah jalan bertahun-tahun&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. &lt;em&gt;Bug&lt;/em&gt;-nya &lt;em&gt;simple&lt;/em&gt;, laporan posisi kendaraan tidak &lt;em&gt;update&lt;/em&gt; di &lt;em&gt;dashboard&lt;/em&gt;. Tapi untuk memperbaikinya, saya harus &lt;em&gt;trace&lt;/em&gt; lewat empat file berbeda, dua &lt;em&gt;layer&lt;/em&gt; &lt;em&gt;business logic&lt;/em&gt; yang &lt;em&gt;nyangkut&lt;/em&gt; satu sama lain, dan satu &lt;em&gt;query&lt;/em&gt; yang ditulis tanpa &lt;em&gt;index&lt;/em&gt;. &lt;em&gt;Satu jam&lt;/em&gt; kemudian, &lt;em&gt;fix&lt;/em&gt;-nya cuma dua baris. Dua baris.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Migrasi Legacy PHP ke Go: Kenapa, Bagaimana, dan Pelajarannya</title>
				<link>https://najib.id/writing/2026/legacy-php-to-go-migration/</link>
				<pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://najib.id/writing/2026/legacy-php-to-go-migration/</guid>
				<description>&lt;p&gt;Saya pernah berada di posisi di mana &lt;em&gt;codebase&lt;/em&gt; PHP sudah &lt;em&gt;kepenuhan&lt;/em&gt;, fitur baru makin susah ditambah, &lt;em&gt;bug&lt;/em&gt; makin sering muncul, dan setiap deploy terasa seperti melempar koin. Bukan karena PHP jelek, tapi karena sistem yang dibangun bertahun-tahun tanpa arsitektur yang jelas akhirnya &lt;em&gt;menyusahkan&lt;/em&gt; dirinya sendiri. Pernah waktu itu sampai harus &lt;em&gt;rollback&lt;/em&gt; tiga kali dalam sehari gara-gara &lt;em&gt;deploy&lt;/em&gt; yang harusnya &lt;em&gt;simple&lt;/em&gt;. &lt;em&gt;Stress level&lt;/em&gt;-nya&amp;hellip; &lt;em&gt;hadeh&lt;/em&gt;, jangan ditanya hahaha.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Nganu&lt;/em&gt;, jadi tulisan ini bukan &lt;em&gt;&amp;ldquo;Go lebih baik dari PHP&amp;rdquo;&lt;/em&gt; atau &lt;em&gt;&amp;ldquo;PHP sudah mati&amp;rdquo;&lt;/em&gt;. Bukan. Tulisan ini catatan pengalaman saya melakukan migrasi sistem backend dari PHP (CodeIgniter 3 dan Laravel) ke Go, berdasarkan proyek nyata yang saya kerjakan. Bukan tutorial, bukan juga propaganda. Cuma catatan pribadi aja, siapa tahu ada yang lagi ngalamin hal serupa dan bisa ambil pelajaran dari kesalahan-kesalahan saya hehe~&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
