Model Data
Ikhtisar Model Data
Ikhtisar Model Data
OmniStream memisahkan seluruh tipe data domain ke dalam crate
omni-common supaya seluruh microservice (api-gateway,
webhook-ingestor, chat-engine, message-sender, ws-server) memakai
struct yang sama. File sumbernya ada di
crates/omni-common/src/models/ (total 18 modul file .rs,
tidak termasuk mod.rs).
Verifikasi jumlah modul pada commit apapun:
Code
18 modul model
Enumerasi lengkap (urut alfabet):
| # | Modul | File | Backing store | Peran |
|---|---|---|---|---|
| 1 | activity_log | crates/omni-common/src/models/activity_log.rs | PostgreSQL | Jejak audit per-agent (login, ubah kontak, resolve conversation, dll) |
| 2 | agent | crates/omni-common/src/models/agent.rs | PostgreSQL | User internal CRM: admin / supervisor / agent (RBAC) |
| 3 | automation | crates/omni-common/src/models/automation.rs | PostgreSQL | Aturan otomatisasi (trigger + action). Deferred v1.1 (lihat SCOPE.md) |
| 4 | campaign | crates/omni-common/src/models/campaign.rs | PostgreSQL | Kampanye broadcast + penerima + status pengiriman |
| 5 | chat_expiration | crates/omni-common/src/models/chat_expiration.rs | PostgreSQL | Aturan auto-resolve conversation. Deferred v1.1 |
| 6 | contact | crates/omni-common/src/models/contact.rs | PostgreSQL | Pelanggan/end-user (kunci = phone/email) |
| 7 | conversation | crates/omni-common/src/models/conversation.rs | PostgreSQL | Percakapan antara contact dan agent (state machine open/resolved) |
| 8 | csat | crates/omni-common/src/models/csat.rs | PostgreSQL | Survei kepuasan pelanggan setelah resolve |
| 9 | division | crates/omni-common/src/models/division.rs | PostgreSQL | Divisi/tim + keanggotaan agent |
| 10 | events | crates/omni-common/src/models/events.rs | Kafka + Redis | Skema event untuk topik Kafka dan channel Redis pub/sub |
| 11 | integration | crates/omni-common/src/models/integration.rs | PostgreSQL | Konfigurasi channel (WhatsApp/Instagram/Email) dengan hot-reload |
| 12 | message | crates/omni-common/src/models/message.rs | MongoDB | Pesan chat individual (volume tinggi, karena itu disimpan di Mongo) |
| 13 | note | crates/omni-common/src/models/note.rs | PostgreSQL | Catatan internal pada sebuah conversation |
| 14 | quick_reply | crates/omni-common/src/models/quick_reply.rs | PostgreSQL | Template pesan cepat milik organisasi/agent |
| 15 | scheduled_message | crates/omni-common/src/models/scheduled_message.rs | PostgreSQL | Pesan terjadwal yang di-dispatch oleh scheduler |
| 16 | sla | crates/omni-common/src/models/sla.rs | PostgreSQL | Kebijakan SLA + log pelanggaran |
| 17 | webhook | crates/omni-common/src/models/webhook.rs | PostgreSQL | Outgoing webhook definitions + antrian webhook_deliveries |
| 18 | webhook_audit | crates/omni-common/src/models/webhook_audit.rs | MongoDB | Raw webhook payload untuk replay/forensik |
File mod.rs tidak dihitung sebagai modul domain. Commit paling awal
masih menyebut "17 model modules" di CLAUDE.md; counter sebenarnya adalah
18 sejak automation.rs dan chat_expiration.rs ditambahkan. Lihat
drift register di docs-site/SCOPE.md Section 3.
Pemisahan backing store
- PostgreSQL menyimpan 15 dari 18 modul — semua data relasional: agent, contact, conversation, note, quick_reply, scheduled_message, integration, division, sla, campaign, csat, webhook, activity_log, automation, chat_expiration.
- MongoDB menyimpan 2 modul volume-tinggi:
message(satu dokumen per pesan chat) danwebhook_audit(payload mentah webhook inbound untuk replay). - Kafka + Redis memegang
events— bukan "store", melainkan skema wire-format untuk kanal event antar-service (lihatdeveloper/model-data/redis-pubsubdandeveloper/webhook/outgoing).
Referensi
- Daftar file resmi:
crates/omni-common/src/models/mod.rs - Struktur Postgres mentah: 41 file migrasi di
migrations/(lihatdeveloper/self-hosting/migrations) - Koleksi MongoDB: dibangun otomatis di
crates/omni-common/src/db/mongodb.rs::setup_indexes
Last modified on