Skip to content

v2.0.0

Latest

Choose a tag to compare

@NinjaRocks NinjaRocks released this 15 Mar 22:59
· 1 commit to master since this release
a50d3ef

SourceFlow.Net v2.0.0 - Changelog

Release Date: TBC
Status: In Development

Note: This release includes AWS cloud integration support. Azure cloud integration will be available in a future release.

🎉 Major Changes

Cloud Core Consolidation

The SourceFlow.Cloud.Core project has been consolidated into the main SourceFlow package. This architectural change simplifies the dependency structure and reduces the number of separate packages required for cloud integration.

Benefits:

  • ✅ Simplified package management (one less NuGet package)
  • ✅ Reduced build complexity
  • ✅ Improved discoverability (cloud functionality is part of core)
  • ✅ Better performance (eliminates one layer of assembly loading)
  • ✅ Easier testing (no intermediate package dependencies)

✨ New Features

Integrated Cloud Functionality

The following components are now part of the core SourceFlow package:

Configuration

  • BusConfiguration - Fluent API for routing configuration
  • IBusBootstrapConfiguration - Bootstrapper integration
  • ICommandRoutingConfiguration - Command routing abstraction
  • IEventRoutingConfiguration - Event routing abstraction
  • IIdempotencyService - Duplicate message detection
  • InMemoryIdempotencyService - Default implementation
  • IdempotencyConfigurationBuilder - Fluent API for idempotency configuration

Resilience

  • ICircuitBreaker - Circuit breaker pattern interface
  • CircuitBreaker - Implementation with state management
  • CircuitBreakerOptions - Configuration options
  • CircuitBreakerOpenException - Exception for open circuits
  • CircuitBreakerStateChangedEventArgs - State transition events

Security

  • IMessageEncryption - Message encryption abstraction
  • SensitiveDataAttribute - Marks properties for encryption
  • SensitiveDataMasker - Automatic log masking
  • EncryptionOptions - Encryption configuration

Dead Letter Processing

  • IDeadLetterProcessor - Failed message handling
  • IDeadLetterStore - Failed message persistence
  • DeadLetterRecord - Failed message model
  • InMemoryDeadLetterStore - Default implementation

Observability

  • CloudActivitySource - OpenTelemetry activity source
  • CloudMetrics - Standard cloud metrics
  • CloudTelemetry - Centralized telemetry

Serialization

  • PolymorphicJsonConverter - Handles inheritance hierarchies

Idempotency Configuration Builder

New fluent API for configuring idempotency services:

// Entity Framework-based (multi-instance)
var idempotencyBuilder = new IdempotencyConfigurationBuilder()
    .UseEFIdempotency(connectionString, cleanupIntervalMinutes: 60);

// In-memory (single-instance)
var idempotencyBuilder = new IdempotencyConfigurationBuilder()
    .UseInMemory();

// Custom implementation
var idempotencyBuilder = new IdempotencyConfigurationBuilder()
    .UseCustom<MyCustomIdempotencyService>();

// Apply configuration
idempotencyBuilder.Build(services);

Builder Methods:

  • UseEFIdempotency(connectionString, cleanupIntervalMinutes) - Entity Framework-based (requires SourceFlow.Stores.EntityFramework package)
  • UseInMemory() - In-memory implementation
  • UseCustom<TImplementation>() - Custom implementation by type
  • UseCustom(factory) - Custom implementation with factory function

Enhanced AWS Integration

AWS cloud extension now supports explicit idempotency configuration:

services.UseSourceFlowAws(
    options => { options.Region = RegionEndpoint.USEast1; },
    bus => bus.Send.Command<CreateOrderCommand>(q => q.Queue("orders.fifo")),
    configureIdempotency: services =>
    {
        services.AddSourceFlowIdempotency(connectionString);
    });

📚 Documentation Updates

New Documentation

Updated Documentation

🐛 Bug Fixes

  • None (this is a major architectural release)

🔧 Internal Changes

Project Structure

  • Consolidated src/SourceFlow.Cloud.Core/ into src/SourceFlow/Cloud/
  • Simplified dependency graph for cloud extensions
  • Reduced NuGet package count

Build System

  • Updated project references to remove Cloud.Core dependency
  • Simplified build pipeline
  • Reduced compilation time

📦 Package Dependencies

SourceFlow v2.0.0

  • No new dependencies added
  • Cloud functionality now integrated

SourceFlow.Cloud.AWS v2.0.0

  • Depends on: SourceFlow >= 2.0.0
  • Removed: SourceFlow.Cloud.Core dependency

🚀 Upgrade Path

For AWS Extension Users

If you're using the AWS cloud extension, no code changes are required. The consolidation is transparent to consumers of the cloud package.

📝 Notes

  • This is a major version release due to breaking namespace changes
  • The consolidation improves the overall architecture and developer experience
  • All functionality from Cloud.Core is preserved in the main SourceFlow package
  • AWS cloud extension remains a separate package with simplified dependencies
  • Azure cloud integration will be available in a future release

🔗 Related Documentation


Version: 2.0.0
Date: 15th March 2026
Status: In Development