Scorecard Kesiapan Microservices untuk Bisnis Scale-Up
Kategori: Web Development
Dipublikasikan: 2026-07-26
Jangan migrasi ke microservices hanya karena tren. Gunakan scorecard 5 poin kami untuk mendiagnosis apakah bisnis Anda benar-benar siap untuk perubahan arsitektur.
Lagu sirene tentang skalabilitas tanpa batas yang dijanjikan oleh arsitektur microservices terdengar begitu merdu, terutama bagi para founder dan CTO di perusahaan rintisan Indonesia yang sedang naik daun (scale-up). Bayangan tentang tim yang bisa melakukan deploy secara mandiri, sistem yang tangguh di mana satu kegagalan tidak meruntuhkan segalanya, dan kemampuan untuk menggunakan teknologi terbaik untuk setiap pekerjaan—semuanya terdengar seperti sebuah utopia teknologi.
Namun, ada kenyataan pahit yang jarang dibicarakan: kuburan proyek migrasi microservices yang gagal sangatlah luas. Banyak perusahaan, dalam semangat untuk tumbuh, melompat terlalu cepat dan menemukan bahwa mereka hanya menukar satu set masalah (monolith yang rumit) dengan set masalah lain yang jauh lebih mahal dan kompleks (monolith terdistribusi).
Masalahnya adalah, adopsi microservices bukanlah sekadar keputusan teknis. Ini adalah keputusan strategis, organisasional, dan kultural. Menerapkannya sebelum waktunya dapat secara harfiah melumpuhkan kecepatan pengembangan, membakar modal, dan membunuh momentum pertumbuhan yang berharga.
Artikel ini bukan sekadar panduan "pro dan kontra". Kami akan memberikan Anda sebuah kerangka kerja, sebuah Scorecard Kesiapan Microservices, untuk mendiagnosis secara jujur apakah microservices untuk bisnis Anda adalah langkah yang tepat, saat ini. Ini adalah tentang mengajukan pertanyaan yang benar sebelum menulis satu baris pun kode baru.
Pertanyaan Fundamental: Apakah Anda Menyelesaikan Masalah yang Tepat?
Sebelum kita masuk ke dalam scorecard, kita harus mengatasi kesalahpahaman utama. Banyak tim mengadopsi microservices untuk menyelesaikan masalah skalabilitas teknis, padahal masalah sebenarnya terletak pada skalabilitas organisasi atau utang teknis (technical debt) yang menumpuk.
### Utang Teknis vs. Batasan Arsitektur Sangat penting untuk membedakan antara monolith yang berantakan yang hanya perlu di-refactor dengan monolith yang telah mencapai batas fundamental arsitekturalnya. Monolith yang berantakan bisa diperbaiki. Monolith yang terbatas secara arsitektur menghambat pertumbuhan bisnis.
- Utang Teknis: Kode yang sulit dibaca, kurangnya testing, modul-modul yang saling terkait erat tanpa alasan yang jelas. Gejalanya adalah developer baru memerlukan waktu berbulan-bulan untuk menjadi produktif, dan perbaikan bug kecil bisa memakan waktu berminggu-minggu.
- Batasan Arsitektur: Sebuah modul inti menyebabkan masalah kinerja di seluruh aplikasi. Contohnya, proses kalkulasi promosi yang intensif secara komputasi memperlambat proses checkout dan pendaftaran pengguna baru. Atau, tim yang bertanggung jawab atas modul inventaris tidak dapat melakukan deploy tanpa berkoordinasi dengan tim pembayaran karena basis data yang sama.
Jika masalah Anda adalah yang pertama, microservices tidak akan membantu; itu hanya akan menyebarkan kekacauan Anda ke berbagai layanan. Fokuslah untuk membersihkan monolith Anda terlebih dahulu. Jika masalah Anda adalah yang kedua, maka microservices mulai menjadi pilihan yang masuk akal.
### Prasyarat Hukum Conway > "Setiap organisasi yang merancang sebuah sistem akan menghasilkan sebuah desain yang strukturnya merupakan salinan dari struktur komunikasi organisasi tersebut."
Ini adalah wawasan yang paling krusial. Jika tim Anda tidak terstruktur untuk bekerja secara otonom, layanan Anda juga tidak akan otonom. Anda akan berakhir dengan apa yang disebut "monolith terdistribusi"—semua kerugian dari microservices (kompleksitas operasional) dan semua kerugian dari monolith (ketergantungan yang erat). Sebelum Anda merancang layanan, rancang tim Anda.
Scorecard Dimensi 1: Struktur Tim & Organisasi
Arsitektur microservices adalah cerminan dari struktur organisasi Anda. Jika organisasinya tidak siap, arsitekturnya akan gagal.
### Ujian Tim Dua Pizza (Two-Pizza Team) Terinspirasi oleh Amazon, apakah tim rekayasa Anda kecil (cukup untuk diberi makan dengan dua loyang pizza), otonom, dan lintas fungsional? Sebuah tim ideal memiliki backend, frontend, DevOps, dan QA yang berdedikasi untuk satu domain bisnis. Mereka harus dapat merancang, membangun, menguji, dan mengoperasikan layanan mereka sendiri.
- Cara Menilai: Berikan diri Anda satu poin jika lebih dari 50% tim pengembangan Anda sudah beroperasi dalam model ini atau mendekatinya.
### Kepemilikan Domain & Akuntabilitas Apakah setiap tim memiliki kepemilikan yang jelas atas domain bisnis tertentu? Misalnya, Tim 'Manajemen Pengguna', Tim 'Pembayaran', Tim 'Inventaris'. Kepemilikan ini harus mencakup segalanya mulai dari roadmap fitur hingga pemantauan kinerja di produksi.
- Jebakan Umum: Kepemilikan yang kabur di mana banyak tim menyentuh domain yang sama. Ini menciptakan skenario "tragedi kepemilikan bersama" di mana tidak ada yang benar-benar bertanggung jawab atas kesehatan jangka panjang sebuah layanan. Di pasar Indonesia yang bergerak cepat, tekanan untuk "menyelesaikan pekerjaan" sering kali mengalahkan pentingnya kepemilikan yang jelas.
Scorecard Dimensi 2: Kematangan DevOps & Operasional
Jika monolith seperti merawat satu hewan peliharaan, microservices seperti mengelola sebuah peternakan. Kompleksitas operasionalnya meningkat secara eksponensial.
### Ujian "CI/CD sebagai Utilitas" Apakah Anda memiliki pipeline Continuous Integration dan Continuous Deployment (CI/CD) yang kuat dan terotomatisasi? Bisakah satu tim melakukan deploy layanan mereka ke produksi secara mandiri, kapan saja, tanpa rapat koordinasi manual dengan tim lain?
- Cara Menilai: Beri diri Anda satu poin jika Anda dapat melakukan deploy perubahan non-trivial ke produksi dalam waktu kurang dari satu jam, sepenuhnya otomatis dan dengan keyakinan.
### Pemantauan & Observability Monolith relatif mudah dipantau: satu aplikasi, satu set log, satu dashboard. Microservices, tanpa alat yang tepat, adalah sebuah kotak hitam. Ketika terjadi kesalahan, bagaimana Anda tahu layanan mana yang menjadi penyebabnya?
Anda memerlukan observability yang matang, yang terdiri dari tiga pilar: 1. Logging: Agregasi log terpusat dari semua layanan Anda (misalnya, menggunakan ELK Stack). 2. Metrics: Dasbor waktu nyata untuk metrik kinerja utama (misalnya, menggunakan Prometheus dan Grafana). 3. Tracing: Kemampuan untuk melacak satu permintaan pengguna saat melintasi berbagai layanan untuk mengidentifikasi bottleneck atau kesalahan (misalnya, menggunakan Jaeger atau OpenTelemetry).
> Wawasan Kunci: Jika Anda tidak dapat melacak satu permintaan pengguna di 5 layanan berbeda untuk menemukan bug, Anda belum siap untuk microservices.
Di HEXADECA, kami sering melihat tim meremehkan beban operasional ini. Kami menjadikan pembangunan tumpukan observability sebagai prasyarat yang tidak bisa ditawar untuk setiap proyek arsitektur microservices yang kami tangani.
Scorecard Dimensi 3: Kejelasan Domain Bisnis
Bagian tersulit dari microservices untuk bisnis yang sedang tumbuh adalah bukan menulis kodenya, melainkan menentukan batasan yang tepat antar layanan.
### Membedah Monolith: Bounded Contexts Ini adalah konsep inti dari Domain-Driven Design (DDD). Bisakah Anda menggambar garis yang jelas di sekitar bagian-bagian bisnis Anda? 'Pengguna', 'Produk', 'Pesanan', 'Pembayaran' adalah kandidat yang jelas. Tujuannya adalah agar setiap layanan memiliki pemahaman yang eksplisit dan terbatas tentang dunianya. Layanan 'Pesanan' tidak perlu tahu bagaimana pengguna diautentikasi; ia hanya perlu tahu ID pengguna.
- Kerangka Kerja Praktis: Lakukan lokakarya "Event Storming" dengan para pemangku kepentingan bisnis (bukan hanya developer). Gunakan sticky notes untuk memetakan semua peristiwa bisnis (event) yang terjadi di sistem Anda (misalnya, 'Pengguna Mendaftar', 'Item Ditambahkan ke Keranjang', 'Pembayaran Berhasil'). Mengelompokkan peristiwa-peristiwa ini sering kali secara alami akan mengungkapkan batasan domain Anda.
### Pola Strangler Fig Ini adalah satu-satunya cara yang waras untuk bermigrasi dari monolith. Jangan pernah melakukan penulisan ulang "big bang".
1. Identifikasi Kandidat: Pilih satu domain yang terisolasi dengan baik dan tidak terlalu kritis, misalnya, layanan notifikasi atau mesin rekomendasi. 2. Bangun Layanan Baru: Buat layanan mikro baru untuk fungsionalitas ini. 3. Arahkan Lalu Lintas: Gunakan proxy atau API gateway untuk mencegat panggilan ke fungsionalitas lama dan mengarahkannya ke layanan baru Anda secara bertahap. 4. "Cekik" yang Lama: Setelah layanan baru stabil dan menangani semua lalu lintas, Anda dapat menghapus kode lama dari monolith. Ulangi proses ini, domain demi domain, secara perlahan "mencekik" monolith Anda.
Contohnya, sebuah platform e-commerce terkemuka di Indonesia mungkin memilih untuk memigrasikan 'mesin promo' mereka terlebih dahulu, karena aturannya sering berubah dan memiliki kebutuhan skalabilitas yang berbeda dari inti checkout.
Scorecard Dimensi 4: Manajemen Data & Konsistensi
Ini sering kali menjadi pil paling pahit untuk ditelan. Ini adalah titik di mana banyak tim menyadari bahwa mereka belum siap.
### Aturan "Satu Basis Data per Layanan" Untuk otonomi sejati, setiap layanan mikro harus memiliki basis datanya sendiri. Tim lain tidak dapat mengakses basis data ini secara langsung; mereka harus melalui API layanan tersebut. Ini mencegah ketergantungan tersembunyi dan memungkinkan setiap tim untuk memilih teknologi basis data yang paling sesuai untuk kebutuhannya (misalnya, PostgreSQL untuk layanan pesanan, Elasticsearch untuk layanan pencarian).
- Masalahnya: Bagaimana Anda menangani transaksi yang mencakup beberapa layanan? Contoh klasik: sebuah pesanan membutuhkan pembaruan pada layanan Inventaris, Pesanan, dan Pembayaran. Dalam monolith, ini adalah satu transaksi ACID. Di dunia microservices, ini menjadi jauh lebih rumit.
### Pola Saga Dijelaskan Solusi untuk transaksi terdistribusi adalah pola Saga. Saga adalah urutan transaksi lokal di mana setiap transaksi memperbarui basis data di satu layanan. Jika satu langkah gagal, Saga menjalankan transaksi kompensasi untuk membatalkan transaksi sebelumnya.
- Contoh: Saga 'Buat Pesanan'
Ini sangat kuat tetapi juga menambah kompleksitas yang luar biasa. Anda harus merancang, membangun, dan memelihara alur kerja kompensasi ini. Ini adalah alasan utama mengapa Anda harus benar-benar yakin bahwa Anda membutuhkan arsitektur ini.
Scorecard Dimensi 5: Alasan Bisnis & Biaya
Microservices tidak gratis. Mereka datang dengan "pajak kompleksitas" yang signifikan.
### Menghitung "Pajak Kompleksitas" Anda pada dasarnya menukar kompleksitas pengembangan (dalam monolith) dengan kompleksitas operasional. Hitung biayanya: - Infrastruktur: Lebih banyak server, container, basis data, dan alat jaringan. - Personel: Kebutuhan akan spesialis DevOps dan Site Reliability Engineers (SRE). - Debugging: Menemukan akar masalah dari sebuah bug yang melintasi beberapa layanan bisa memakan waktu berjam-jam. - Beban Kognitif: Developer harus memahami tidak hanya layanan mereka sendiri tetapi juga bagaimana layanan itu berinteraksi dengan ekosistem yang lebih luas.
### Kapan Biaya Ini Sebanding? Tentu saja, ada saatnya biaya ini sepadan. Itu terjadi ketika biaya untuk tidak beralih ke microservices menjadi lebih tinggi. Biasanya ini terjadi ketika: - Organisasi rekayasa Anda terhenti karena bottleneck dalam proses deploy. - Bagian yang berbeda dari aplikasi Anda memiliki kebutuhan skalabilitas yang sangat berbeda (misalnya, layanan transcoding video vs. layanan profil pengguna). - Anda ingin memungkinkan tim untuk bereksperimen dengan tumpukan teknologi yang berbeda untuk layanan yang berbeda.
Tujuan adopsi microservices untuk bisnis yang sedang berkembang bukan hanya untuk mengadopsi teknologi, tetapi untuk memastikan arsitektur tersebut melayani kecepatan bisnis, bukan menghambatnya.
Skor Anda & Jalan ke Depan
Sekarang, hitung skor Anda dari kelima dimensi di atas. Jujurlah.
- Skor 4-5: Anda adalah kandidat yang kuat. Anda memiliki fondasi organisasi dan teknis untuk berhasil. Mulailah dengan proyek percontohan menggunakan Pola Strangler Fig pada domain yang tidak terlalu kritis. Buktikan modelnya dalam skala kecil sebelum berkomitmen penuh.
- Skor 2-3: Anda memiliki celah fundamental. Mungkin DevOps Anda belum matang, atau tim Anda masih sangat bergantung satu sama lain. Saat ini, microservices akan lebih banyak merugikan daripada menguntungkan. Fokuslah untuk memperbaiki celah ini terlebih dahulu. Perbaiki CI/CD Anda, definisikan batas-batas tim dan domain dengan lebih baik. Monolith yang terstruktur dengan baik adalah sahabat terbaik Anda saat ini.
- Skor 0-1: Berhenti. Jangan lakukan itu. Mengadopsi microservices sekarang akan menjadi kesalahan besar yang dapat menghancurkan perusahaan Anda. Fokuslah pada dasar-dasarnya: membersihkan utang teknis, membangun praktik rekayasa yang solid, dan menumbuhkan budaya kepemilikan.
Perjalanan menuju microservices adalah maraton, bukan lari cepat. Ini adalah keputusan strategis yang mencerminkan kematangan organisasi, bukan hanya kehebatan teknis. Memilih waktu yang tepat adalah segalanya.
---
Memutuskan apakah dan kapan harus mengadopsi microservices untuk bisnis Anda adalah salah satu keputusan teknis paling kritis yang dapat dibuat oleh sebuah scale-up. Ini adalah pertaruhan dengan risiko tinggi. Jika Anda memerlukan mitra strategis untuk membantu menavigasi kompleksitas ini, mulai dari penilaian kesiapan hingga eksekusi yang cermat, hubungi para ahli di HEXADECA.
The Microservices Readiness Scorecard for Scale-Ups (English)
The siren song of infinite scalability promised by a microservices architecture is incredibly alluring, especially for the founders and CTOs of Indonesia's burgeoning scale-ups. The vision of independently deployable teams, resilient systems where one failure doesn't crash everything, and the ability to use the best tech for each job—it all sounds like a technological utopia.
But there's a harsh reality that's rarely discussed: the graveyard of failed microservice migrations is vast. Many companies, in their rush to grow, jump the gun and discover they've merely traded one set of problems (a complex monolith) for another, far more expensive and complex set (a distributed monolith).
The issue is that adopting microservices is not merely a technical decision. It's a strategic, organizational, and cultural one. Adopting it prematurely can literally cripple development velocity, burn through capital, and kill precious growth momentum.
This article isn't another generic "pros and cons" guide. We're giving you a framework, a Microservices Readiness Scorecard, to honestly diagnose if microservices for your scaling business is the right move, right now. It's about asking the right questions before you write a single line of new code.
The Foundational Question: Are You Solving the Right Problem?
Before we dive into the scorecard, we must address a primary misunderstanding. Many teams adopt microservices to solve for technical scalability when their real problem is organizational scalability or accumulated technical debt.
### Technical Debt vs. Architectural Limits It's critical to distinguish between a messy monolith that just needs refactoring and a monolith that has hit a fundamental architectural wall. A messy monolith can be fixed. An architecturally limited monolith throttles business growth.
- Technical Debt: Hard-to-read code, lack of testing, tightly coupled modules for no good reason. The symptom is that new developers take months to become productive, and small bug fixes take weeks.
- Architectural Limit: A core module is causing performance bottlenecks across the entire application. For instance, a computationally intensive promotions calculation process slows down both checkout and new user registration. Or, the team in charge of the inventory module can't deploy without coordinating with the payments team because of a shared database.
If your problem is the former, microservices won't help; it will just distribute your mess across many services. Focus on cleaning up your monolith first. If your problem is the latter, then microservices start to become a sensible option.
### The Conway's Law Prerequisite > "Any organization that designs a system... will produce a design whose structure is a copy of the organization's communication structure."
This is the single most crucial insight. If your teams are not structured to work autonomously, your services won't be autonomous either. You will end up building a "distributed monolith"—all the pain of microservices (operational complexity) and all the pain of the monolith (tight coupling). Before you design your services, design your teams.
Scorecard Dimension 1: Team & Organizational Structure
A microservices architecture is a mirror of your organization. If the org isn't ready, the architecture will fail.
### The Two-Pizza Team Test Inspired by Amazon, are your engineering teams small (enough to be fed by two pizzas), autonomous, and cross-functional? An ideal team has dedicated backend, frontend, DevOps, and QA for a single business domain. They should be able to design, build, test, and operate their own service.
- How to Score: Give yourself a point if over 50% of your development teams already operate in or near this model.
### Domain Ownership & Accountability Does each team have clear ownership over a specific business domain? E.g., a 'User Management' Team, a 'Payments' Team, an 'Inventory' Team. This ownership should cover everything from the feature roadmap to performance monitoring in production.
- Common Pitfall: Vague ownership where multiple teams touch the same domain. This creates a "tragedy of the commons" where no one is truly accountable for the long-term health of a service. In the fast-moving Indonesian market, the pressure to just "get it done" often overrides the need for clear ownership.
Scorecard Dimension 2: DevOps & Operational Maturity
If a monolith is like caring for one pet, microservices are like running a cattle ranch. The operational complexity increases exponentially.
### The "CI/CD as a Utility" Test Do you have robust, automated Continuous Integration and Continuous Deployment (CI/CD) pipelines? Can a single team deploy their service to production, independently, at any time, without a manual coordination meeting with other teams?
- How to Score: Give yourself a point if you can deploy a non-trivial change to production in under an hour, fully automated and with confidence.
### Monitoring & Observability A monolith is relatively easy to monitor: one app, one set of logs, one dashboard. Microservices, without the right tooling, are a black box. When something goes wrong, how do you know which service is the culprit?
You need mature observability, which consists of three pillars: 1. Logging: Centralized log aggregation from all your services (e.g., using an ELK Stack). 2. Metrics: Real-time dashboards for key performance metrics (e.g., using Prometheus and Grafana). 3. Tracing: The ability to follow a single user request as it travels across multiple services to identify bottlenecks or errors (e.g., using Jaeger or OpenTelemetry).
> Key Insight: If you can't trace a single user request across 5 different services to find a bug, you are not ready for microservices.
At HEXADECA, we often see teams underestimate this operational overhead. We make building out the observability stack a non-negotiable prerequisite for any microservice architecture project we undertake.
Scorecard Dimension 3: Business Domain Clarity
The hardest part of microservices for a scaling business isn't writing the code; it's defining the right boundaries between services.
### Deconstructing the Monolith: Bounded Contexts This is a core concept from Domain-Driven Design (DDD). Can you draw clean lines around parts of your business? 'Users', 'Products', 'Orders', 'Payments' are obvious candidates. The goal is for each service to have an explicit, limited understanding of its world. The 'Orders' service doesn't need to know how a user is authenticated; it just needs a user ID.
- Practical Framework: Run an "Event Storming" workshop with business stakeholders (not just developers). Use sticky notes to map out all the business events that happen in your system (e.g., 'User Signed Up', 'Item Added to Cart', 'Payment Succeeded'). Grouping these events will often naturally reveal your domain boundaries.
### The Strangler Fig Pattern This is the only sane way to migrate from a monolith. Never, ever do a "big bang" rewrite.
1. Identify a Candidate: Pick one well-isolated and non-critical domain, for example, a notification service or a recommendation engine. 2. Build the New Service: Create the new microservice for this functionality. 3. Route the Traffic: Use a proxy or API gateway to intercept calls to the old functionality and incrementally route them to your new service. 4. "Strangle" the Old: Once the new service is stable and handling all traffic, you can delete the old code from the monolith. Repeat this process, domain by domain, slowly "strangling" your monolith.
For example, a leading Indonesian e-commerce platform might choose to migrate its 'promo engine' first, as its rules change often and it has different scaling needs than the core checkout flow.
Scorecard Dimension 4: Data Management & Consistency
This is often the hardest pill to swallow. It's the point where many teams realize they are not ready.
### The "One Database Per Service" Rule For true autonomy, each microservice must own its own database. Other teams cannot access this database directly; they must go through the service's API. This prevents hidden coupling and allows each team to choose the database technology that best suits its needs (e.g., PostgreSQL for an orders service, Elasticsearch for a search service).
- The Problem: How do you handle a transaction that spans multiple services? The classic example: an order requires updates to the Inventory, Order, and Payment services. In a monolith, this is a single ACID transaction. In a microservices world, it's much more complex.
### The Saga Pattern Explained The solution for distributed transactions is the Saga pattern. A Saga is a sequence of local transactions where each transaction updates the database in a single service. If one step fails, the Saga executes compensating transactions to undo the preceding ones.
- Example: A 'Create Order' Saga
This is incredibly powerful but also adds immense complexity. You have to design, build, and maintain these compensating workflows. It's a key reason you need to be absolutely sure you need this architecture.
Scorecard Dimension 5: Business Rationale & Cost
Microservices are not free. They come with a significant "complexity tax."
### Calculating the "Complexity Tax" You are essentially trading development complexity (in a monolith) for operational complexity. Tally the costs: - Infrastructure: More servers, containers, databases, and networking tools. - Personnel: The need for DevOps specialists and Site Reliability Engineers (SREs). - Debugging: Finding the root cause of a bug that spans multiple services can take hours. - Cognitive Load: Developers must understand not only their own service but how it interacts with the wider ecosystem.
### When is It Worth It? Of course, there is a point where this cost is worth it. That happens when the cost of not moving to microservices becomes higher. This typically occurs when: - Your engineering organization is grinding to a halt because of deployment bottlenecks. - Different parts of your application have vastly different scaling needs (e.g., a video transcoding service vs. a user profile service). - You want to enable teams to experiment with different technology stacks for different services.
The goal of adopting microservices for your scaling business isn't just to adopt the tech, but to ensure the architecture serves business velocity, not hinders it.
Your Score & The Path Forward
Now, tally your score across the five dimensions. Be honest.
- Score 4-5: You're a strong candidate. You have the organizational and technical foundations to succeed. Begin with a pilot project using the Strangler Fig Pattern on a non-critical domain. Prove the model at a small scale before committing fully.
- Score 2-3: You have fundamental gaps. Perhaps your DevOps isn't mature, or your teams are still heavily coupled. Right now, microservices will cause more harm than good. Focus on fixing these gaps first. Improve your CI/CD, better define your team and domain boundaries. A well-structured monolith is your best friend right now.
- Score 0-1: Stop. Don't do it. Adopting microservices now would be a catastrophic mistake that could sink your company. Focus on the basics: cleaning up technical debt, building solid engineering practices, and fostering a culture of ownership.
The move to microservices is a marathon, not a sprint. It's a strategic decision that reflects organizational maturity, not just technical prowess. Timing is everything.
---
Deciding if and when to adopt microservices for your scaling business is one of the most critical technical decisions a scale-up can make. It's a high-stakes bet. If you need a strategic partner to help navigate this complexity, from readiness assessment to careful execution, reach out to the experts at HEXADECA.