Kompatibilitas
Moco-BaaS beroperasi dengan mengandalkan beberapa komponen pendukung. Tentunya terdapat beberapa issue yang harus diperhatikan terkait setiap komponen tersebut.
PostgreSQL
- Saat ini MBaaS hanya mendukung PgSQL versi 10, dikarenakan terdapat beberapa inkompatibilitas pada versi 11 dan 12 yang memerlukan perubahan tertentu.
- Database transaction sudah mendukung isolation level dan concurrency lock.
S3 storage
- Penggunaan Minio sebagai basis menyebabkan adanya beberapa batasan yang sesuai dukungan implementasi pada Minio. Lihat Minio Server Limits.
- Batasan yang paling sering dialami adalah tidak adanya BucketACL dan BucketCORS. Minio hanya mendukung BucketPolicy sebagai alternatif dari BucketACL.
- Fitur storage pada MBaaS bersifat opsional dan dapat dibuat non-aktif.
Selain penggunaan Minio, berikut adalah beberapa storage yang dapat digunakan:
- Amazon S3
- Ceph (doc)
- Vultr Object (doc)
- Wasabi (doc)
- Neo Object Storage
- Minio gateway for Azure, NAS, HDFS or S3 (doc)
Redis
- Redis versi 5 merupakan komponen utama selain PgSQL.
- Dependensi atas Redis tidak dapat dibuat non-aktif dan menjadi keharusan.
- Selain dimanfaatkan sebagai media cache dan rate-limiter, Redis juga menjadi fallback atas penggunaan RabbitMQ terkait propagasi event / action di dalam sistem MBaaS.
RabbitMQ
- RabbitMQ merupakan dependensi utama yang dapat diatur non-aktif (fallback ke Redis).
- RabbitMQ merupakan backbone dari beberapa fungsional MBaaS yang bersifat fundamental, diantaranya yaitu: data-change event, job queue, task scheduler, dan RPC.
Elasticsearch
Saat ini hanya menyediakan client interface untuk ES versi 6. Penggunaan ES adalah opsional, sehingga dapat dibuat non-aktif jika tidak diperlukan.