Details about all the dependencies that need to be set up in order to run the OpenChannel service within your own cloud infrastructure. This will give you the chance to explore and set up the dependencies ahead of time. Also, attached here is an architecture diagram describing what the OpenChannel service looks like in a high availability setup.

This information is not meant to be fully inclusive of all recommended, finalized configuration details. This is just meant as a primer to help you understand the dependencies of the service.

MongoDB Database

The OpenChannel service uses MongoDB as the database for storing all data records. We recommend using MongoDB 4.4.

For local development, we recommend using the MongoDB Docker image for quick setup and configuration.

For production grade MongoDB, we recommend using MongoDB Atlas. MongoDB Atlas is a fully managed, multi-cloud MongoDB service that can be setup in minutes. In fact, at OpenChannel, we don’t manage our own MongoDB, we use MongoDB Atlas. For most OpenChannel customers, the following configuration should be enough:

  • MongoDB Atlas Dedicated M10 (2 GB memory, 2 vCPU)
  • 3-node replica set
  • 10GB storage
  • 1000 IOPS

MongoDB Atlas cost: $60 /mo

Estimated MongoDB setup time for MongoDB Atlas: 1 hour

Required: Yes. This is the primary data store for all persisted data and records (except binary files).

Redis Cache

The OpenChannel service uses Redis as the primary cache for providing shared memory across the stateless web services, speeding up requests and reducing database load. We recommend using Redis 6.2.

For local development, we recommend using the Redis Docker image for quick setup and configuration.

For production grade Redis, we recommend using the managed Redis service provided by your cloud hosting provider. At OpenChannel, we use AWS Elasticache Redis. For most OpenChannel customers, the following configuration should be enough:

  • AWS Elasticache cache.t3.small (1.37 GB memory, 2 vCPU)
  • 2-node replica set
  • Encryption at rest: yes
  • Multi availability zone: yes

AWS Elasticache cost: $50 /mo

Estimated Redis setup time for AWS Elasticache: 1 hour

Required: Yes. The service is architected around high availability and the cache provides shared memory across the stateless web services.

Rabbit MQ

The OpenChannel service uses RabbitMQ as the primary message broker for sending and processing events. We recommend using RabbitMQ 3.9.9.

For local development, we recommend using the RabbitMQ Docker image for quick setup and configuration.

For production grade, RabbitMQ we recommend using CloudAMQP. CloudAMQP is a fully managed, multi-cloud RabbitMQ service that can be setup in minutes. In fact, at OpenChannel, we don’t manage our own RabbitMQ, we use CloudAMQP. Additionally, cloud service providers like AWS do have their own managed RabbitMQ services (like AmazonMQ RabbitMQ). For most OpenChannel customers, the following configuration should be enough:

  • CloudAMQP Big Bunny (1 GB memory, 2 vCPU)
  • 3-node replica set

CloudAMQP cost: $300 /mo

AmazonMQ RabbitMQ cost: $60 /mo

Estimated managed RabbitMQ setup time: 1 hour

Required: Yes. All of the subsystems in the service are event based and require a pub/sub broker to deliver those internal events. 

Compute for Docker Based Services

The OpenChannel service uses AWS ECS and Fargate for running it’s web services (packaged as docker containers). Any docker based compute is suitable for running these tasks. For quick setup consider using services like AWS Elastic Beanstalk.

For local development, we recommend running the services in docker containers locally.

For production grade computing, we recommend using AWS ECS with Fargate or any cloud compute equivalent (Azure or GCP). For most OpenChannel customers, the following configuration should be enough:

  • Compute per task of 2 GB memory, 1 vCPU
  • 2 running tasks per service

Estimated compute cost: $200 /mo

Estimated compute setup time: 16 hours

Required: Yes. There are three web services that are required in order to process requests and provide responses. 

Cloud File Storage and CDN

The OpenChannel service uses AWS S3 for storing files that are uploaded to the service. We also use AWS Cloudfront as a CDN to secure and increase the performance of file delivery.

For local development, we recommend setting up a cloud storage bucket specifically for testing.

For production grade file storage, we recommend using AWS S3. If you use another cloud service provider like GCP or Azure then please reach out and let us know. For most OpenChannel customers, the following configuration should be enough:

  • 20 GB of cloud storage

Estimated cloud storage and CDN cost: less than $20 /mo

Estimated cloud storage and CDN setup time: 3 hours 

Required. Yes. Much of the system’s functionality revolves around being able to upload and retrieve files like binaries or images.

Email Service

The OpenChannel service uses Sendgrid for sending email notifications. 

For local development, we recommend setting up a Sendgrid account specifically for testing.

For production grade email service, an “Essentials” Sendgrid plan is the best.

Estimated email service cost: $16 /mo

Estimated email service setup time: 1 hour

Required: Yes. The service needs to be able to send emails. Not just for user and developer notifications but for admin notifications and system emails like “forgot password”.

Angular Site Hosting

The OpenChannel service uses Angular hosting services for the management dashboard and any fully managed marketplace and partner portal sites.

For local development, we recommend using the Angular CLI for quick setup and configuration.

For production grade hosting, we recommend using Netlify. At OpenChannel, we use Netlify for Angular hosting. For most OpenChannel customers, the “Pro” Netlify plan is enough.

Estimated hosting cost: $19 /mo

Estimated hosting setup time: 4 hours

Required: Yes. The OpenChannel dashboard (my.openchannel.io) is an Angular application and hosting is required in order for admins to manage their marketplace.