π Framework FeaturesΒΆ
The Neuroglia Python framework provides a comprehensive set of concrete framework capabilities and implementation utilities. Features are specific tools and utilities provided by the framework, while Patterns define architectural approaches and design principles.
π― Features vs PatternsΒΆ
| Features (This Section) | Patterns (../patterns/index.md) |
|---|---|
| What: Specific framework capabilities | What: Architectural design approaches |
| Purpose: Tools and utilities you use | Purpose: How to structure and design |
| Examples: Serialization, Validation, HTTP Client | Examples: CQRS, DDD, Pipeline Behaviors |
π― Core Architecture FeaturesΒΆ
π MVC ControllersΒΆ
FastAPI-integrated controller framework that automatically discovers and registers API endpoints. Provides consistent patterns for request handling and response formatting.
Key Capabilities:
- Automatic controller discovery
- Consistent API patterns
- Built-in validation and serialization
- Integration with dependency injection
πΎ Data AccessΒΆ
Flexible data access patterns supporting multiple storage backends including MongoDB, file-based storage, and in-memory repositories. Implements repository and unit of work patterns.
Key Capabilities:
- Repository pattern implementations
- Multiple storage backends
- Async/await data operations
- Transaction support
π Event & Integration FeaturesΒΆ
π Mermaid DiagramsΒΆ
Built-in support for generating and validating Mermaid diagrams for architecture documentation. Includes diagram validation and preview capabilities.
Key Capabilities:
- Architecture diagram generation
- Diagram validation
- Multiple diagram types
- Documentation integration
ποΈ Advanced Architecture FeaturesΒΆ
π― Resource Oriented ArchitectureΒΆ
Implementation of resource-oriented patterns for building RESTful APIs and microservices. Focuses on resource identification and manipulation through standard HTTP verbs.
Key Capabilities:
- Resource identification patterns
- RESTful API design
- HTTP verb mapping
- Resource lifecycle management
SerializationΒΆ
Powerful JSON serialization system with automatic type handling, custom encoders, and seamless integration with domain objects.
Key Capabilities:
- Automatic type conversion (enums, decimals, datetime)
- Custom JsonEncoder for complex objects
- Dependency injection integration
- Comprehensive error handling
π― Object MappingΒΆ
Advanced object-to-object mapping with convention-based property matching, custom transformations, and type conversion support.
Key Capabilities:
- Convention-based automatic mapping
- Custom mapping configurations
- Type conversion and validation
- Mapping profiles and reusable configurations
π Enhanced Integration FeaturesΒΆ
β° Background Task SchedulingΒΆ
Enterprise-grade background task scheduling with APScheduler integration, Redis persistence, and comprehensive error handling for complex workflow orchestration.
Key Capabilities:
- APScheduler integration with multiple job stores
- Redis persistence for distributed scheduling
- Reactive stream processing for real-time events
- Circuit breaker patterns and retry policies
- Comprehensive monitoring and error handling
β‘ Redis Cache RepositoryΒΆ
High-performance Redis-based caching repository with async operations, distributed locks, and intelligent cache management for scalable microservices.
Key Capabilities:
- Async Redis operations with connection pooling
- Distributed locks for cache consistency
- Hash-based storage with automatic serialization
- TTL management and cache invalidation strategies
- Comprehensive error handling and fallback mechanisms
π HTTP Service ClientΒΆ
Resilient HTTP client with retry policies, circuit breaker patterns, request/response interceptors, and comprehensive error handling for external API integration.
Key Capabilities:
- Circuit breaker patterns for fault tolerance
- Configurable retry policies with exponential backoff
- Request/response interceptors for cross-cutting concerns
- Comprehensive error handling and logging
- Service-specific configuration management
π€ Case Conversion utilitiesΒΆ
Comprehensive string and object case conversion utilities supporting snake_case, camelCase, PascalCase, kebab-case, and Title Case transformations with Pydantic integration.
Key Capabilities:
- Comprehensive case conversion (snake_case β camelCase β PascalCase β kebab-case β Title Case)
- Recursive dictionary key transformation for nested objects
- Pydantic CamelModel base class with automatic alias generation
- API serialization compatibility for different naming conventions
- Optional dependency management with graceful fallback
β Enhanced Model ValidationΒΆ
Advanced validation system with business rules, conditional validation, custom validators, and comprehensive error reporting for complex domain logic validation.
Key Capabilities:
- Business rule validation with fluent API
- Conditional validation rules that apply based on context
- Property and entity validators with composite logic
- Comprehensive error aggregation and field-specific reporting
- Decorator-based method parameter validation
- Integration with domain-driven design patterns
π§ͺ Development & Testing FeaturesΒΆ
All features include comprehensive testing support with:
- Unit Testing: Isolated testing with mocking support
- Integration Testing: Full-stack testing capabilities
- Performance Testing: Built-in performance monitoring
- Documentation: Comprehensive examples and guides
π Feature IntegrationΒΆ
The framework features are designed to work together seamlessly:
graph TB
subgraph "π Presentation Layer"
MVC[MVC Controllers]
end
subgraph "πΌ Application Layer"
Watcher[Watcher Patterns]
Validation[Model Validation]
end
subgraph "ποΈ Domain Layer"
Resources[Resource Patterns]
Mapping[Object Mapping]
end
subgraph "π Infrastructure Layer"
Data[Data Access]
Diagrams[Mermaid Diagrams]
Redis[Redis Cache]
HTTP[HTTP Client]
Background[Background Tasks]
end
MVC --> Watcher
MVC --> Data
Watcher --> Resources
Mapping --> Data
Redis -.-> Data
HTTP -.-> MVC
Background -.-> Watcher
style MVC fill:#e3f2fd
style Watcher fill:#f3e5f5
style Resources fill:#e8f5e8
style Data fill:#fff3e0
π Getting StartedΒΆ
- Start with π Architecture Patterns - Foundation patterns (DI, CQRS, etc.)
- Implement MVC Controllers - API layer development
- Choose Data Access - Persistence strategy
- Add Object Mapping - Data transformation
- Enhance with specialized features - Caching, validation, watchers, etc.
π Related DocumentationΒΆ
- π― Architecture Patterns - Design patterns and principles
- π Implementation Guides - Step-by-step implementation guides
- π Mario's Pizzeria - Complete working example
- πΌ Sample Applications - Real-world implementation examples
Each feature page contains detailed implementation examples, best practices, and integration patterns. The framework is designed to be incrementally adoptable - start with the core features and add specialized capabilities as needed.