https://github.com/simplify9/bitween
https://github.com/simplify9/bitween
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/simplify9/bitween
- Owner: simplify9
- License: mit
- Created: 2020-08-08T19:11:21.000Z (almost 6 years ago)
- Default Branch: releases/r8.0
- Last Pushed: 2025-06-04T09:06:03.000Z (12 months ago)
- Last Synced: 2025-07-19T21:23:32.188Z (11 months ago)
- Language: C#
- Homepage:
- Size: 3.1 MB
- Stars: 7
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Bitween
Open-Source Integration Middleware Platform
[](https://opensource.org/licenses/MIT)
[](https://dotnet.microsoft.com/)
[](https://www.docker.com/)
[](https://kubernetes.io/)
---
## ๐ Overview
Bitween is a powerful, open-source integration middleware designed to simplify data exchange between different systems, regardless of protocols and data formats. Built with enterprise-grade scalability and customization in mind, Bitween acts as a central hub for all your integration needs.
### Why Bitween?
- **๐ Protocol Agnostic**: Handle any data format (JSON, XML, EDI, etc.) and communication protocol
- **๐ฏ Serverless Adapters**: Custom business logic through pluggable serverless components
- **๐ Real-time Processing**: Event-driven architecture for high-throughput message processing
- **๐ Enterprise Security**: JWT authentication, multi-tenant isolation, and access controls
- **๐ Scalable**: Cloud-native design with Kubernetes support and horizontal scaling
- **๐ Observable**: Complete audit trails, monitoring, and processing visibility
## ๐๏ธ Architecture
Bitween follows a hub-and-spoke architecture where messages flow through configurable processing pipelines:
```
External Systems โ API Gateway โ Processing Pipeline โ Target Systems
โ
Validation โ Filtering โ Mapping โ Handling โ Response
```
### Core Components
- **Web API**: RESTful endpoints for message ingestion and management
- **Processing Engine**: Asynchronous message processing with domain events
- **Serverless Framework**: Custom adapter execution environment
- **Multi-Database Support**: PostgreSQL, MySQL, SQL Server compatibility
- **Cloud Storage**: File persistence with configurable storage backends
## โก Quick Start
### Prerequisites
- .NET 8.0 SDK
- Docker (optional)
- Database (PostgreSQL, MySQL, or SQL Server)
### 1. Clone the Repository
```bash
git clone https://github.com/simplify9/bitween.git
cd bitween
```
### 2. Run with Docker
```bash
# Build and run with Docker Compose
docker-compose up -d
# Or build Docker image manually
docker build -t bitween .
docker run -p 8080:8080 bitween
```
### 3. Local Development Setup
```bash
# Restore dependencies
dotnet restore
# Update database connection in appsettings.json
# Run database migrations
./migratedb.sh
# Start the application
dotnet run --project SW.Bitween.Web
```
The application will be available at `http://localhost:8080`
## ๐ Ecosystem & Companion Projects
Bitween is part of a comprehensive integration ecosystem with additional tools and components:
### ๐ฅ๏ธ Bitween UI - Web Management Interface
A modern React-based web interface for managing and monitoring your Bitween integration platform.
- **Repository**: [BitweenUI](https://github.com/simplify9/BitweenUI)
- **Features**: Dashboard, configuration management, monitoring, audit logs
- **Technology**: React, TypeScript, Tailwind CSS, Redux Toolkit
#### Quick Setup
```bash
# Clone the UI repository
git clone https://github.com/simplify9/BitweenUI.git
cd BitweenUI
# Install dependencies
npm install
# Configure API endpoint (create .env file)
echo "REACT_APP_API_URL=http://localhost:8080" > .env
# Start development server
npm start
```
The UI will be available at `http://localhost:3000`
#### Production Deployment
```bash
# Build for production
npm run build
# Deploy with Docker
docker build -t bitween-ui .
docker run -p 3000:80 bitween-ui
```
### ๐ Bitween Adapters - Pre-built Integration Components
A comprehensive collection of production-ready adapters for common integration scenarios.
- **Repository**: [BitweenAdapters](https://github.com/simplify9/BitweenAdapters)
- **License**: MIT (Open Source)
- **Technology**: .NET 6+, Serverless-ready
#### Available Adapters
**Handlers** (Business Logic & Output):
- **HTTP Handler**: REST API calls and webhooks
- **SMTP Handler**: Email notifications and bulk sending
- **FTP/SFTP Handler**: File uploads and transfers
- **Azure Blob Handler**: Cloud storage operations
- **S3 Handler**: AWS storage integration
- **Microsoft Teams Handler**: Teams notifications
- **SendGrid Handler**: Professional email delivery
**Receivers** (Data Input Sources):
- **FTP/SFTP Receiver**: Scheduled file polling
- **HTTP Receiver**: Webhook endpoints and API polling
- **POP3 Receiver**: Email processing
- **Azure Blob Receiver**: Cloud storage monitoring
- **S3 Receiver**: AWS storage file detection
- **Elasticsearch Receiver**: Search and analytics data
**Mappers** (Data Transformation):
- **Liquid Mapper**: Template-based transformation
- **JSON to Delimited Mapper**: Format conversion (CSV, TSV)
#### Quick Start with Adapters
```bash
# Clone the adapters repository
git clone https://github.com/simplify9/BitweenAdapters.git
cd BitweenAdapters
# Build specific adapter (example: SFTP Handler)
dotnet build SW.InfolinkAdapters.Handlers.Ftp/
# Run adapter locally
cd SW.InfolinkAdapters.Handlers.Ftp
dotnet run
# Deploy as Docker container
docker build -t bitween-sftp-handler .
docker run -p 7000:80 bitween-sftp-handler
```
### ๐ Ecosystem Comparison
| Component | Core Only | + UI | + Adapters | Complete Ecosystem |
|-----------|-----------|------|------------|-------------------|
| **Integration Platform** | โ
| โ
| โ
| โ
|
| **REST API** | โ
| โ
| โ
| โ
|
| **Web Dashboard** | โ | โ
| โ | โ
|
| **Visual Configuration** | โ | โ
| โ | โ
|
| **Pre-built Connectors** | โ | โ | โ
| โ
|
| **Monitoring & Analytics** | โ | โ
| โ | โ
|
| **User Management** | โ | โ
| โ | โ
|
| **Time to Production** | Days | Hours | Hours | Minutes |
| **Development Effort** | High | Medium | Low | Minimal |
> ๐ก **Recommendation**: Use the complete ecosystem for the best developer experience and fastest time to production.
## ๐ Documentation
### ๐ Ecosystem & Platform
- [**Ecosystem Overview**](docs/ecosystem.md) - Complete platform ecosystem and companion projects
- [**Architecture Overview**](docs/architecture.md) - System design and components
- [**Domain Model**](docs/domain-model.md) - Core entities and relationships
- [**Processing Pipeline**](docs/processing-pipeline.md) - Message flow and transformation
### ๐ ๏ธ Development Guides
- [**Quick Setup**](docs/quick-setup.md) - Get started in under 10 minutes
- [**Getting Started**](docs/getting-started.md) - Development environment setup
- [**API Reference**](docs/api-reference.md) - REST API documentation
- [**Custom Adapters**](docs/custom-adapters.md) - Building serverless components
- [**Configuration**](docs/configuration.md) - Application settings and options
### ๐ Deployment
- [**Quick Setup**](docs/quick-setup.md) - Fast development setup
- [**Production Deployment**](docs/production-deployment.md) - Complete ecosystem deployment
- [**Docker Deployment**](docs/docker-deployment.md) - Container-based deployment
- [**Kubernetes**](docs/kubernetes-deployment.md) - Orchestrated deployment
- [**Database Setup**](docs/database-setup.md) - Multi-database configuration
### ๐ก Examples
- [**Integration Patterns**](docs/integration-patterns.md) - Common usage scenarios
- [**Sample Adapters**](docs/sample-adapters.md) - Reference implementations
## ๐ง Key Features
### Message Processing
- **Document Types**: Define message schemas with promoted properties
- **Subscriptions**: Configure processing rules and routing logic
- **Filtering**: Route messages based on content and metadata
- **Transformation**: Custom data mapping and format conversion
### Integration Patterns
- **Synchronous**: Request-response API calls
- **Asynchronous**: Event-driven message processing
- **Scheduled**: Time-based data retrieval and batch processing
- **Aggregation**: Multi-message consolidation and reporting
### Extensibility
- **Custom Validators**: Input validation logic
- **Custom Mappers**: Data transformation rules
- **Custom Handlers**: Business processing logic
- **Custom Receivers**: External data source integration
## ๐ข Use Cases
- **B2B Integration**: EDI processing and partner data exchange
- **API Gateway**: Protocol translation and message routing
- **Microservice Integration**: Event-driven service communication
- **Data Synchronization**: Scheduled batch processing between systems
- **Workflow Automation**: Process orchestration and business rule execution
## ๐ค Contributing
We welcome contributions from the community! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Development Setup
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests for new functionality
5. Submit a pull request
### Areas for Contribution
- ๐ Bug fixes and improvements
- ๐ Documentation enhancements
- ๐ New adapter implementations
- ๐งช Test coverage expansion
- ๐ Localization support
## ๐ Support & Community
- **Documentation**: [Comprehensive guides and API reference](docs/)
- **Issues**: [Report bugs and request features](https://github.com/simplify9/bitween/issues)
- **Discussions**: [Community discussions and Q&A](https://github.com/simplify9/bitween/discussions)
- **Company**: [Simplify9](https://www.simplify9.com/)
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Acknowledgments
Built with โค๏ธ by [Simplify9](https://www.simplify9.com/) and the open-source community.
---
โญ Star this repository if you find Bitween useful!
Made with โค๏ธ for the integration community