Nexa Intelligence Docs
Pipeline Data

Phone Farm

Arsitektur pemanenan media sosial berbasis perangkat keras fisik (Hardware Phone Farm Swarm / b3-scrapper-social-process), cron 15 menit scraping trending topic di platform X, pemrosesan AI taksonomi, load balancing 20 unit Samsung S10, hingga Direct Dual Sink ke PostgreSQL, Elasticsearch, dan MinIO S3.

Phone Farm (Hardware Mobile Swarm)

Infrastruktur Phone Farm merupakan subsistem pemanenan data percakapan media sosial berbasis perangkat keras fisik (Hardware-in-the-Loop Crawler). Berbeda dengan pipeline indeks data biasa, Phone Farm adalah mesin infrastruktur penopang (underlying engine, seperti halnya AIOS) yang mengorkestrasi armada 20 unit ponsel pintar Samsung Galaxy S10 (10.10.10.23:5555 s/d 10.10.10.42:5555) melalui antarmuka Android Debug Bridge (ADB over TCP/IP).

Pipeline ini dipicu secara berkala setiap 15 menit melalui Cron Scheduler. Pada setiap siklusnya, modul B3 Scraper melakukan pemanenan awal terhadap trending topics dan kata kunci terpopuler di platform X (Twitter), mengirimkannya ke model AI untuk penyesuaian taksonomi (AI Taxonomy Adjustment), lalu mengerahkan armada ponsel fisik untuk memanen konten percakapan mendalam (deep multi-platform scraping) di berbagai aplikasi native (X, Instagram, TikTok, Facebook).

Pembaruan Arsitektur: Cron 15 Menit, AI Taxonomy & Direct Dual Sink

  1. Scraping X Trending (Cron 15m): B3 Scraper mengambil daftar trending topic dan kata kunci terhangat di platform X wilayah Indonesia setiap 15 menit.
  2. Pemrosesan AI Taksonomi: Hasil trending dianalisis oleh model AI untuk penyesuaian taksonomi (taxonomy adjustment), klasifikasi pilar strategis, dan penyaringan noise.
  3. Tanpa Antrean Kafka: Pipeline tidak lagi mengambil data dari queue-pf-keyword dan tidak lagi memproduksi ke queue-pf-normalized. Seluruh data postingan langsung dinormalisasi dan di-upsert (Direct Dual Sink) ke PostgreSQL, Elasticsearch postings, dan MinIO S3.

1. Spesifikasi Infrastruktur & Modul Pelaksana

KomponenSpesifikasi / KonfigurasiDeskripsi
Worker Engineb3-scrapper-social-processService Python yang mengontrol lifecycle tugas, scraping X trending, load balancer, dan ADB driver.
Trigger MekanismeCron Scheduler (*/15 * * * *)Pemicu eksekusi periodik setiap 15 menit untuk siklus pemanenan trending X dan penugasan swarm.
Trending SourcePlatform X (Twitter Indonesia)Sumber awal ekstraksi topik hangat, tagar, volume tweet, dan peringkat linimasa.
AI Taxonomy EngineAI-Worker / NLP Taxonomy ClassifierMemproses kata kunci X trending untuk penyesuaian struktur pohon taksonomi dan penentuan pilar strategis.
Armada Fisik20x Samsung Galaxy S10Terhubung pada subnet lokal statis 10.10.10.23 s.d. 10.10.10.42 port 5555.
Database Master & SnapshotPostgreSQL (social_trending_topics, social_trending_snapshots)Menyimpan master topik aktif hasil klasifikasi AI dan rekaman time-series dinamika peringkat per 15 menit.
Data Sink TargetPostgreSQL & Elasticsearch (postings, post_author)Penyimpanan langsung data postingan terstruktur (Direct Dual Sink).
Object StorageMinIO S3 (social-evidence)Menyimpan tangkapan layar (screenshot) framebuffer JPG dan dokumen JSON mentah.
Driver AutomasiUIAutomator2 + ADB ShellSimulasi gesture sentuh, scrolling dinamis, dump hierarchy XML, dan OCR rendering.

Arsitektur Load Balancer & Eksekusi Hardware Phone Farm

Fan-out kata kunci, verifikasi 3 lapis ADB, isolasi layar, dan pengalokasian 20 HP Samsung S10

01. B3 Cron (15m) X Trending & AI Taxonomy [X Scraper • AI Classifier]

B3 melakukan scraping trending topic/keyword di platform X setiap 15 menit, diproses oleh AI untuk penyesuaian taksonomi, lalu disimpan ke PostgreSQL.

02. 5-Way Platform Fan-Out Manager [IG • TikTok • X • YouTube • FB]

1 kata kunci dipecah menjadi 5 sub-tugas paralel terisolasi dengan parameter platform spesifik untuk memanen percakapan lintas jejaring sosial.

03. 3-Layer Device Gating & Health Check [ADB • Watchdog • Dumpsys]

Penyaringan ketat: ADB Discovery, Circuit Breaker (>5x gagal dieliminasi), cek APK (pm path), dan validasi akun login aktif (dumpsys account, TTL 60s).

04. Round-Robin Shifting Pool (20 HP Samsung S10) [10.10.10.23:5555 - 10.10.10.42:5555]

Penunjuk _rr_index digeser setiap penugasan. 5 subtask platform disebar ke 5 unit HP fisik berbeda, mencegah penumpukan tugas dan overheating.

05. Pre-Flight Isolation & Thermal Dimming [am force-stop • brightness 0]

Pembersihan paksa sesi medsos lain (am force-stop) sebelum app target dibuka, redupkan layar fisik ke 0, dan kunci konkurensi (_is_busy = True).

06. UIAutomator2 Scraping & Direct Dual Sink [MinIO S3 • PostgreSQL • Elasticsearch]

Pengambilan teks & screenshot bukti frame-buffer, upload ke MinIO S3, lalu persistensi langsung ke tabel PostgreSQL dan indeks Elasticsearch postings tanpa melalui Kafka.


2. Diagram Alur Eksekusi End-to-End

Berikut alur lengkap dari siklus cron 15 menit, penyesuaian taksonomi oleh AI, hingga penyimpanan postingan:

Diagram Alur Eksekusi End-to-End Phone Farm

Siklus 15m: Cron X Trending → AI Taxonomy → PG Snapshots → Dispatch Balancer → UIAutomator2 Native → Direct Dual Sink

01. Pemicu Cron 15m & Ekstraksi Trending X [Cron Scheduler → B3 Scraper → Platform X]

Cron job memicu eksekusi setiap 15 menit. Modul B3 Scraper menarik 50 topik dan tagar terhangat beserta volume tweet dan peringkat terkini dari platform X Indonesia.

02. Pemrosesan AI: Penyesuaian Taksonomi [B3 Scraper → AI Taxonomy Engine]

Model AI memfilter derau hiburan/giveaway, mencocokkan kata kunci ke kamus taksonomi (L1–L5), menentukan pilar strategis nasional, dan mengembalikan topik teranotasi.

03. Persistensi Master Topik & Snapshot Tren [PostgreSQL: social_trending_*]

B3 melakukan upsert master topik ke tabel social_trending_topics dan merekam snapshot posisi peringkat time-series ke social_trending_snapshots.

04. Dispatch Tugas & Device Load Balancer [FarmAgent → 20x Samsung Galaxy S10]

FarmAgent memverifikasi 3 lapis kesiapan HP (ADB discovery, cek paket APK, sesi login aktif), alokasi Round-Robin 20 HP, dan pre-flight force-stop app lain + kecerahan 0.

05. Pemanenan Multi-Platform Native via ADB [UIAutomator2: TikTok, IG, FB, X]

Armada HP mengeksekusi pencarian aplikasi native secara fisik: scroll linimasa, ekstraksi teks postingan & komentar, metrik interaksi, dan capture bukti framebuffer JPG.

06. Direct Dual Sink Persistence [MinIO S3 • PostgreSQL • Elasticsearch]

Unggah bukti screenshot ke MinIO S3 (social-evidence), direct insert ke tabel PostgreSQL (postings & post_author), dan direct index ke Elasticsearch postings tanpa melalui Kafka.


3. Rincian 7 Tahapan Eksekusi Komputasi

Setiap 15 menit (*/15 * * * *), modul B3 Scraper menjalankan sub-rutin ekstraksi topik tren dari platform X (Twitter) geolokasi Indonesia (WOEID: 23424846):

  1. Target Data: 50 frasa tren / tagar teratas di linimasa X.
  2. Atribut yang Dikumpulkan:
    • Kata kunci / Tagar (topic).
    • Estimasi volume tweet (tweet_volume).
    • Posisi peringkat saat snapshot diambil (rank 1 s.d. 50).
    • Label konteks bawaan platform (misal: Politics, Business, Trending).

Tahap 2: Pemrosesan AI untuk Penyesuaian Taksonomi (AI Taxonomy Adjustment)

Daftar trending topic mentah dari platform X tidak langsung disebarkan ke armada ponsel. Data tersebut dialirkan ke Model AI (NLP / LLM Taxonomy Classifier) untuk diproses:

  1. Penyaringan Noise & Disambiguasi:
    • Model AI membedakan topik hiburan/K-Pop/giveaway dengan isu strategis nasional yang berdampak pada stabilitas publik.
  2. Penyesuaian Struktur Taksonomi (Taxonomy Adjustment):
    • Model AI mencocokkan kata kunci ke kamus pohon taksonomi internal (taxonomy_nodes).
    • Jika isu yang muncul merupakan terminologi baru (misal: istilah regulasi baru atau insiden mendadak), AI melakukan penyesuaian taksonomi dinamis: menentukan leaf node yang sesuai dan mengaitkannya ke salah satu dari Pilar Strategis Nasional (Politik, Keamanan & Kamtibmas, Ekonomi, Sosial, Hukum, Budaya, Geopolitik).
  3. Skor Relevansi & Prioritas:
    • Menghasilkan bobot prioritas pemanenan (priority weight) agar ponsel fisik memprioritaskan isu yang memiliki dampak risiko publik tertinggi.

Hasil yang telah disesuaikan oleh AI disimpan langsung ke database relasional PostgreSQL:

  • Tabel social_trending_topics: Memperbarui status topik aktif, pilar hasil klasifikasi AI, serta skor volume kumulatif.
  • Tabel social_trending_snapshots: Menyimpan histori time-series pergeseran peringkat dan volume tweet setiap 15 menit untuk analisis tren lonjakan (velocity).

Tahap 4: Dispatcher Misi & 5-Way Fan-Out Manager

Kata kunci strategis aktif yang telah divalidasi oleh AI didistribusikan ke FanOutManager:

  1. Topik dipecah menjadi sub-tugas pemanenan mendalam untuk 4-5 platform: X (Twitter), Instagram, TikTok, Facebook, dan YouTube Shorts.
  2. Tugas diarahkan ke armada fisik melalui FarmAgent (Device Balancer).

Tahap 5: Verifikasi 3 Lapis Kesiapan Perangkat & Alokasi Round-Robin

Sebelum perintah dikirimkan ke perangkat fisik, balancer menjalankan filter bertingkat:

  1. Lapis 1 — Health Gate & Circuit Breaker: Memeriksa konektivitas ADB over TCP/IP (adb get-state == 'device').
  2. Lapis 2 — Package Verification: Memeriksa ketersediaan aplikasi native resmi pada ponsel.
  3. Lapis 3 — Sesi Akun Aktif (TTL 60s): Memastikan akun pada aplikasi dalam kondisi login (dumpsys account).
  4. Alokasi Round-Robin: Mendistribusikan platform berbeda ke unit fisik ponsel yang berbeda menggunakan pointer internal.

Tahap 6: Pre-Flight Check, Isolasi Layar, & Mitigasi Termal

  1. Isolasi Layar (am force-stop): Mematikan paksa aplikasi medsos lain sebelum meluncurkan aplikasi target guna mencegah tabrakan UI dan dialog pop-up.
  2. Peredupan Layar Fisik (screen_brightness 0): Mematikan lampu latar LCD/OLED agar ponsel tidak mengalami overheating (panas berlebih) di dalam rak server, sementara subsistem render Android tetap aktif.
  3. Device Mutex Lock (self._is_busy = True): Menjeda proses background pada HP selama interaksi scraping berlangsung.

Tahap 7: Eksekusi Scraping UIAutomator2 & Direct Dual Sink Persistence

  1. Pemanenan Konten: UIAutomator2 mengetikkan kata kunci pencarian, melakukan scrolling linimasa, mengekstrak hierarki teks postingan, nama akun (author), metrik interaksi (likes, comments, reposts), dan cap waktu.
  2. Capture Bukti Frame-Buffer: Mengambil tangkapan layar langsung dari frame-buffer perangkat dan mengunggahnya ke MinIO S3 (social-evidence).
  3. Direct Dual Sink (Tanpa Kafka):
    • PostgreSQL: Melakukan INSERT ... ON CONFLICT (id_post) DO UPDATE ke tabel postings dan post_author.
    • Elasticsearch: Melakukan indexing dokumen secara langsung ke indeks postings untuk visualisasi instan di dashboard.

4. Spesifikasi Payload Misi & Skema Penyimpanan

Payload hasil scraping platform X yang telah disesuaikan oleh AI ke dalam taksonomi:

{
  "source_platform": "x_twitter",
  "scraped_at": "2026-10-06T20:15:00Z",
  "extracted_trend": {
    "raw_topic": "#KenaikanPajakDaerah",
    "rank": 2,
    "tweet_volume": 84200,
    "context_label": "Finance · Trending"
  },
  "ai_taxonomy_adjustment": {
    "is_strategic_issue": true,
    "pillar": "ekonomi",
    "category": "Kebijakan Fiskal & Pajak",
    "sub_category": "Pajak Daerah",
    "taxonomy_node_id": "8f3b9c10-21a4-4e9b-a311-92fbb08d1204",
    "relevance_score": 0.94,
    "sentiment_indication": "Negatif",
    "priority_level": "HIGH"
  }
}

5. Ringkasan Tanya Jawab Teknis Kunci (FAQ)

Q1: Mengapa ekstraksi awal trending topic difokuskan pada platform X (Twitter)?
Platform X merupakan saluran percakapan publik paling cepat merefleksikan isu yang sedang viral atau memanas di Indonesia (real-time pulse of public discourse). Dengan memanen tren X setiap 15 menit, sistem memperoleh kompas kata kunci teraktual untuk memandu pemanenan mendalam ke platform visual lainnya (Instagram, TikTok, Facebook).

Q2: Mengapa diperlukan proses AI untuk penyesuaian taksonomi pada topik trending?
Tagar dan kata kunci di media sosial sering kali berupa bahasa gaul, sarkasme, singkatan (acronyms), atau gabungan kata informal (misal: #KawalPutusanMK, TolakPajakNombok). Model AI menganalisis makna semantik dari frasa tersebut, menyaring topik hiburan yang tidak relevan, dan memetakannya secara presisi ke kategori serta pilar taksonomi resmi lembaga.

Q3: Mengapa tidak lagi menggunakan antrean Kafka queue-pf-keyword dan queue-pf-normalized?
Pemanenan berbasis cron 15 menit dengan database dispatcher menyederhanakan alur orkestrasi, mengurangi latensi serialisasi pesan antrean, dan memastikan bahwa hasil pemanenan postingan langsung tersedia secara instan (real-time direct sink) di PostgreSQL dan Elasticsearch tanpa antrean perantara.

Q4: Bagaimana cara mencegah tabrakan aplikasi saat 20 unit ponsel berganti target platform?
Fungsi launch_app_robust mengeksekusi am force-stop untuk mematikan paksa aplikasi sosial media lain pada ponsel sebelum membuka aplikasi target baru, disertai jeda waktu stabilisasi antarmuka 3.5 detik dan peredupan layar fisik (screen_brightness 0).

On this page