Check out more articles:
- Building a Scalable Notification System with gRPC and Microservices
- Adding a Notification Feed in React Websites
- A Complete Guide on Notification Infrastructure for Modern Applications in 2023
Much like the mythical Bifrost bridge in the Marvel Universe, this tool acts as a conduit, ensuring a fast and secure journey for your data to reach the campaign workflows or SuprSend. Let's explore how Bifrost empowers developers to run both manual and scheduled campaigns with ease.
Overview
Bifrost serves as a versatile tool for creating one-time or scheduled campaigns. It efficiently pulls data from your data store and transmits it to SuprSend, enabling effective communication with your audience. Here are some key features and use cases that Bifrost addresses:
Use Cases
Scheduled Tasks: Bifrost allows for the execution and monitoring of scheduled tasks, such as daily, weekly, or periodic reminders.
Manual Tasks: It facilitates the running of manual tasks, including sending release notes and updates to specific user subsets.
Dependencies
Bifrost, written in Go, can be deployed using the provided Docker image. Its only dependency is Redis. You have the flexibility to use a separate Redis instance or deploy one using the provided Docker Compose configuration. For streamlined deployment, the Docker Compose configuration supports automatic SSL certificate management via Caddy.
Supported Databases
Bifrost currently supports the following databases:
- MySQL
- PostgreSQL
- BigQuery (Check How to integrate BigQuery with Bifrost)
- MongoDB (In development)
- Elasticsearch / Opensearch (In development)
- Redshift (In development)
Getting Started with Deployment
To harness the power of Bifrost, follow these steps for a smooth deployment:
1. Decide Hostname and Redis Deployment
- Choose a hostname for hosting Bifrost (e.g.,
bifrost.yourdomain.com
). - Add an A record pointing to the IP where Bifrost will be deployed.
2. Generate OAuth Client Token and Secret
- Follow the documentation page for generating a Google OAuth client token and secret.
- Use the generated token and secret for Bifrost authentication.
3. Generate Config YAML File
- Create a
bifrost-config.yaml
file with your configuration settings, including workspace keys and secrets for SuprSend.
bifrost:
host: "https://bifrost.yourdomain.com"
timezone: "Asia/Kolkata"
google_clientKey: "__OAUTH_CLIENT_KEY__"
google_clientSecret: "__OAUTH_CLIENT_SECRET__"
suprsend:
- name: staging
key: "__staging_workspace_key__"
secret: "__staging_workspace_secret__"
- name: production
key: "__production_workspace_key__"
secret: "__production_workspace_secret__"
4. Configure Docker Compose File
- Create a Docker Compose file (
compose.yaml
) based on the provided reference. - Ensure Redis container has permissions to write in the specified directory.
services:
redis:
container_name: redis
image: "bitnami/redis:latest"
volumes:
- ./redis-data:/bitnami/redis/data
environment:
- ALLOW_EMPTY_PASSWORD=yes
bifrost-server:
container_name: bifrost-server
restart: on-failure
image: "ghcr.io/suprsend/bifrost:main"
entrypoint: /bifrost-server
depends_on:
- redis
volumes:
- "./:/bifrost/"
bifrost-worker:
container_name: bifrost-worker
restart: on-failure
image: "ghcr.io/suprsend/bifrost:main"
entrypoint: /bifrost-worker
depends_on:
- redis
volumes:
- "./:/bifrost/"
caddy:
container_name: caddy
image: caddy:latest
depends_on:
- redis
- bifrost-server
ports:
- "443:443"
- "80:80"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy:/data/caddy/pki
5. Start Bifrost Service
- Execute
docker-compose up -d
to start the Bifrost services. - Wait for Caddy to generate SSL certificates.
- Visit
https://bifrost.yourdomain.com
to access the login page.
6. Shutdown Bifrost
- Execute
docker-compose down
to gracefully shut down Bifrost when needed.
Try Now for free - Bifrost
How SuprSend Notification Infrastructure Can Power Your Complete Stack?
We can help you abstract your developmental layer without compromising quality and code. Our team is led by two experienced co-founders who have a combined experience of more than 20 years in building notification stacks for different early/mid-to-large-sized companies. We've been through the ups and downs, the sleepless nights, and the moments of triumph that come with creating a dependable notification infrastructure.
This is our amazing team, and we're here to make your journey unforgettable :)
Now let's see how SuprSend can benefit you:
-
Multi-Channel Support:
- Add multiple communication channels (Email, SMS, Push, WhatsApp, Chat, App Inbox) with ease.
- Seamless integration with various providers.
- Flexible channel routing and management.
-
Visual Template Editors:
- Powerful, user-friendly template editors for all channels.
- Centralized template management.
- Versioning support for templates, enabling rapid changes without code modification.
-
Intelligent Workflows:
- Efficient notification delivery through single triggers.
- Configurable fallbacks, retries, and smart routing between channels.
- Handle various notification types (Transactional, Crons, Delays, Broadcast) effortlessly.
-
Enhanced User Experience:
- Preference management for user control.
- Multi-lingual content delivery.
- Smart channel routing and batching to avoid message bombardment.
- Frequency caps and duplicate prevention.
-
Comprehensive Analytics and Logs:
- Real-time monitoring and logs for all channels.
- Cross-channel analytics for message performance evaluation.
- Receive real-time alerts for proactive troubleshooting.
-
Developer-Friendly:
- Simplified API for triggering notifications on all channels.
- SDKs available in major programming languages.
- Comprehensive documentation for ease of integration.
-
App Inbox:
- Customizable inapp-inbox for your app and website.
- Provides a convenient way to centralize and manage notifications for users.
- Try our app-inbox playground here: SuprSend_AppInbox_Playground
-
Bifrost Integration:
- Run notifications natively on a data warehouse for enhanced data management.
-
User-Centric Preferences:
- Allow users to set their notification preferences and opt-out if desired.
-
Scalable and Time-Saving:
- Quickly deploy notifications within hours, saving development time.
- Minimal effort is required to set up notifications. Get started in under 5 minutes.
-
24*7 Customer Support:
- Our team is distributed around various time zones, ensuring someone is always up to cater to customer queries.
- We also received the 'Best Customer Support' badge from G2 for our unwavering dedication.
Would appreciate if you can star us on Github - Github