Enterprise-grade .NET SDK for building scalable, cloud-native applications with Domain-Driven Design and distributed architecture patterns.
Aether Framework is a comprehensive SDK designed to accelerate enterprise application development by providing production-ready implementations of essential architectural patterns and cross-cutting concerns. Built with modern cloud-native principles, it eliminates boilerplate code and lets development teams focus on business logic.
- 🏗️ Proven Architecture Patterns - Repository, Unit of Work, DDD building blocks, CQRS-ready services
- 🌐 Distributed-First - Event bus, distributed cache/lock, inbox/outbox patterns
- 📊 Built-in Observability - OpenTelemetry integration with traces, metrics, and logs
- 🚀 Cloud-Native Ready - Dapr integration, containerization support
- 📦 Modular Design - Use only what you need
- 🎯 Developer-Friendly - Convention over configuration with intuitive APIs
Comprehensive documentation is available in the framework/docs directory:
- Complete Framework Documentation - Feature overview, quick start guides, and best practices
- Framework README - Architecture and project structure
Core Infrastructure
Domain-Driven Design
Event Architecture
Application Layer
Infrastructure Services
Cross-Cutting Concerns
# Install core packages
dotnet add package BBT.Aether.AspNetCore
dotnet add package BBT.Aether.Infrastructure
# Use CLI to scaffold a new project
dotnet run --project framework/src/BBT.Aether.Cli create MyProject -tm MyTeam -t apiMinimal Setup Example:
var builder = WebApplication.CreateBuilder(args);
// Configure Aether services
builder.Services.AddAetherCore(options => options.ApplicationName = "MyApp");
builder.Services.AddAetherInfrastructure();
builder.Services.AddAetherDbContext<MyDbContext>(options =>
options.UseNpgsql(connectionString));
builder.Services.AddAetherEventBus(options => options.PubSubName = "pubsub");
builder.Services.AddAetherTelemetry(builder.Configuration, builder.Environment);
var app = builder.Build();
app.UseCorrelationId();
app.UseUnitOfWorkMiddleware();
app.Run();See framework documentation for detailed examples and configuration options.
| Package | Description | Dependencies |
|---|---|---|
BBT.Aether.Core |
Core interfaces and abstractions | - |
BBT.Aether.Domain |
DDD building blocks and domain layer | Core |
BBT.Aether.Infrastructure |
Infrastructure implementations | Core, Domain |
BBT.Aether.Application |
Application service patterns | Infrastructure |
BBT.Aether.AspNetCore |
ASP.NET Core integrations | Infrastructure |
BBT.Aether.Aspects |
PostSharp aspect implementations | Core |
BBT.Aether.HttpClient |
HTTP client abstractions | Core |
BBT.Aether.TestBase |
Testing utilities | Core |
aether/
├── framework/ # Main framework solution
│ ├── src/ # Source projects
│ │ ├── BBT.Aether.Core/
│ │ ├── BBT.Aether.Domain/
│ │ ├── BBT.Aether.Infrastructure/
│ │ ├── BBT.Aether.Application/
│ │ ├── BBT.Aether.AspNetCore/
│ │ ├── BBT.Aether.Aspects/
│ │ ├── BBT.Aether.HttpClient/
│ │ ├── BBT.Aether.TestBase/
│ │ └── BBT.Aether.Cli/
│ └── docs/ # Comprehensive documentation
├── build/ # Build scripts
└── README.md # This file
We welcome contributions from the community! Here's how you can help:
- Fork the repository and clone it locally
- Create a feature branch from
maingit checkout -b feature/your-feature-name
- Make your changes following our coding standards
- Write tests for new functionality
- Update documentation as needed
- Submit a pull request with a clear description
- Follow existing code style and conventions
- Ensure all tests pass before submitting
- Add XML documentation comments for public APIs
- Update relevant documentation in
framework/docs/ - Keep commits focused and write clear commit messages
- Reference related issues in your PR description
- 🐛 Bug fixes and issue resolution
- ✨ New feature implementations
- 📖 Documentation improvements
- 🧪 Test coverage enhancements
- 🌍 Localization and translations
- 💡 Feature suggestions and discussions
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for the community
- Show empathy towards other community members
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 Burgan Bank Technology
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED.
- Documentation: framework/docs/README.md
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- NuGet Packages: Package Publishing Guide
- 📧 For questions and support, open a GitHub Discussion
- 🐛 For bug reports, create a GitHub Issue
- 📖 For detailed usage, see the comprehensive documentation
Built with ❤️ by Burgan Bank Technology Team