SignalFlow is an event-driven platform for real-time market data ingestion and analysis, enriched with AI-based news sentiment features.
SignalFlow provides a scalable infrastructure to consume, process, and store real-time financial data from sources like Alpaca, with optional extensions for news analytics using AI.
- sf-ingestor: main entrypoint service for consuming and logging streamed data
- internal/: modular implementation for configuration, DB, and client interaction
- pkg/: utilities such as logger and streamer abstraction
- docker-compose: PostgreSQL, services orchestration for local development
| Layer | Technology |
|---|---|
| Language | Go |
| Configuration | Viper + YAML |
| Logging | Zerolog |
| API/Streaming | WebSockets (Alpaca) |
| Storage | PostgreSQL (pgxpool) |
| Containerization | Docker + Compose |
| Linting | golangci-lint |
- Go 1.21+
- Docker & Docker Compose
- Alpaca API keys
git clone https://github.com/maxviazov/signal-flow.git
cd signal-flow
cp config.yaml.example config.yaml
# or use environment variables via .env
make build
make run- Viper-based configuration
- Zerolog logging
- Alpaca WebSocket integration
- Kafka support
- Redis Pub/Sub middleware
- Public WebSocket API
- React-based dashboard (maybe 😉)
Pull requests are welcome! For major changes, please open an issue first and follow the project code style via go fmt.
This project is licensed under the MIT License. See the LICENSE file for details.