Kompatibilitas

Moco-BaaS beroperasi dengan mengandalkan beberapa komponen pendukung. Tentunya terdapat beberapa issue yang harus diperhatikan terkait setiap komponen tersebut.

PostgreSQL

  1. Saat ini MBaaS hanya mendukung PgSQL versi 10, dikarenakan terdapat beberapa inkompatibilitas pada versi 11 dan 12 yang memerlukan perubahan tertentu.
  2. Database transaction sudah mendukung isolation level dan concurrency lock.

S3 storage

  1. Penggunaan Minio sebagai basis menyebabkan adanya beberapa batasan yang sesuai dukungan implementasi pada Minio. Lihat Minio Server Limits.
  2. Batasan yang paling sering dialami adalah tidak adanya BucketACL dan BucketCORS. Minio hanya mendukung BucketPolicy sebagai alternatif dari BucketACL.
  3. 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

  1. Redis versi 5 merupakan komponen utama selain PgSQL.
  2. Dependensi atas Redis tidak dapat dibuat non-aktif dan menjadi keharusan.
  3. Selain dimanfaatkan sebagai media cache dan rate-limiter, Redis juga menjadi fallback atas penggunaan RabbitMQ terkait propagasi event / action di dalam sistem MBaaS.

RabbitMQ

  1. RabbitMQ merupakan dependensi utama yang dapat diatur non-aktif (fallback ke Redis).
  2. 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.