Key Features¶
🏗️ Architecture & Design Patterns¶
- Domain-Driven Design (DDD): Clean architecture with clear domain boundaries
- CQRS Pattern: Command Query Responsibility Segregation for scalable operations
- Domain Events: Rich event model for worker lifecycle & telemetry (broadcast via SSE)
- SubApp Pattern: Clean separation between API and UI concerns
- Repository Pattern: Pluggable data access with in-memory and MongoDB implementations
🔐 Authentication & Security¶
- OAuth2/OIDC: Modern authentication standards
- Keycloak Integration: Enterprise-grade identity management
- Backend-for-Frontend (BFF): Secure session-based authentication for UI
- JWT Bearer Tokens: API authentication with RS256 signature verification
- RBAC: Role-based access control at the application layer
- Redis Session Store: Distributed sessions for horizontal scaling in Kubernetes
🎨 Frontend & UI¶
- Parcel Bundler: Zero-config build tool with hot module replacement
- Nunjucks Templates: Powerful templating engine
- Bootstrap 5: Modern responsive UI framework
- SCSS: CSS preprocessing for maintainable styles
- Vanilla ES6: Modern JavaScript modules without heavy frameworks
- Single Page Application (SPA): Smooth user experience with dynamic content
🔧 Backend & Infrastructure¶
- FastAPI: High-performance async web framework
- Neuroglia: DDD/CQRS framework with Mediator pattern
- MongoDB with Motor: Async document database
- Mongo Express: Web-based database management
- CloudEvents: Standardized event format with Player for debugging
- OpenTelemetry: Metrics & distributed tracing for workers and background jobs
- OTEL Collector: Integrated pipeline for metrics/traces export
- Server-Sent Events (SSE): Real-time push of worker metrics, status, labs, lifecycle events
🔄 Real-Time & Monitoring¶
- SSE Endpoint:
/api/events/streamwith heartbeat + reconnection support - Event Types:
worker.created,worker.status.updated,worker.metrics.updated,worker.labs.updated,worker.terminated - Labs Refresh Job: Recurrent global job (
labs-refresh-global) runs every 30 minutes + initial startup run - Metrics Polling: Configurable interval for AWS/CML metrics collection
- Status Badge: Live connection indicator in Workers UI
- Admin Services Menu: Quick access to Grafana, Event Player, and Identity Management for admins
🐳 Development & Deployment¶
- Docker + Docker Compose: Complete local development stack
- Production Stack: Hardened Docker Compose setup with Nginx, Keycloak, and Observability
- Observability Stack: Full OTEL pipeline with Prometheus, Loki, Tempo, and Grafana dashboards
- Poetry: Modern Python dependency management
- pytest: Comprehensive test suite with 98% coverage
- Black + Ruff: Code formatting and linting
- MkDocs Material: Beautiful documentation site
- Makefile Automation: Simple commands for common development tasks
- GitHub Template: Project renaming utility (
scripts/rename_project.py) for quick customization
About Neuroglia-Python¶
Neuroglia-python is a framework for building applications based on Domain-Driven Design (DDD) and Command Query Responsibility Segregation (CQRS). It provides composable building blocks (Mediator, Repositories, Mapping, Observability) enabling testable modular architecture.
- Framework Documentation: https://bvandewe.github.io/pyneuro/