BrighterCommand / BrighterCommand/Brighter

Drop AWS SDK v3 Support in Brighter v11

Open
#4,217 0 comments 1 reaction 0 assignees View on GitHub
.NET 0 - Backlog Breaking Change V11
Dominant language
C#
Stars
2.5k
Forks
296
Avg merge
1d 11h
Merged PRs (30d)
21

Description

### Problem Statement
Brighter currently maintains dual AWS SDK support — both **v3** and **v4** packages — for DynamoDB and AWSSQS. As the AWS SDK for .NET v4 matures and becomes the standard, continuing to ship v3-specific packages creates unnecessary overhead:

- **Duplicate code paths** — inbox, outbox, locking, and messaging gateway logic is effectively duplicated across v3 and v4 variants.
- **Maintenance burden** — every bug fix, feature addition, or dependency update must be applied to both sets of packages.
- **Consumer confusion** — new users must choose between `Paramore.Brighter.Outbox.DynamoDB` and `Paramore.Brighter.Outbox.DynamoDB.V4` without clear guidance.
- **AWS SDK direction** — AWS SDK for .NET v4 is the actively developed path forward. v3 is in maintenance mode.

### Scope
This proposal targets **Brighter v11** as a breaking change. We remove all AWS SDK v3-specific packages. The existing v4 packages **retain their current names** (including the `.V4` suffix).

### Packages to Remove in v11

| v3 Package (remove) | Existing v4 Package (keep as-is) |
|---------------------|----------------------------------|
| `Paramore.Brighter.Inbox.DynamoDB` | `Paramore.Brighter.Inbox.DynamoDB.V4` |
| `Paramore.Brighter.Outbox.DynamoDB` | `Paramore.Brighter.Outbox.DynamoDB.V4` |
| `Paramore.Brighter.Locking.DynamoDB` | `Paramore.Brighter.Locking.DynamoDB.V4` |
| `Paramore.Brighter.MessagingGateway.AWSSQS` | `Paramore.Brighter.MessagingGateway.AWSSQS.V4` |

### Proposed v11 Package Structure

| v11 Package | AWS SDK Version | Contains |
|-------------|-----------------|----------|
| `Paramore.Brighter.Inbox.DynamoDB.V4` | v4 | Inbox only |
| `Paramore.Brighter.Outbox.DynamoDB.V4` | v4 | Outbox only |
| `Paramore.Brighter.Locking.DynamoDB.V4` | v4 | Locking only |
| `Paramore.Brighter.MessagingGateway.AWSSQS.V4` | v4 | MessagingGateway only |

*(Note: These are the **existing** v4 package names — no rename, no consolidation yet. This issue is purely about dropping v3.)*

### Benefits
1. **Reduced maintenance burden** — eliminate duplicate provider implementations and halve the AWS-related release overhead.
2. **Clearer consumer experience** — v4 becomes the only option, removing the "v3 or v4?" decision.
3. **Aligns with AWS roadmap** — v4 is the future of the AWS SDK for .NET.
4. **Enables future consolidation** — removing v3 clears the path for a later v11 issue to consolidate `Inbox.DynamoDB.V4`, `Outbox.DynamoDB.V4`, and `Locking.DynamoDB.V4` into a single `Paramore.Brighter.DynamoDB.V4` package.

### Migration Path for v11

1. **v10.x (final minor)**: Mark v3 AWS packages as obsolete with a warning pointing to v4 equivalents.
2. **v11.0.0**:
- Remove v3 AWS packages from the build and release pipeline entirely.
- Keep v4 package names exactly as they are today (`.V4` suffix stays).
- Publish a migration guide covering package reference updates for consumers moving from v3 to v4.
3. **No type-forwarding shims**: v11 is a major version with expected breaking changes.

### Considerations
- **Breaking change**: This is intentional. v11 is the correct vehicle for this.
- **Enterprise consumers on v3**: Organizations pinned to AWS SDK v3 can remain on Brighter v10.x (which will continue to receive critical fixes for a reasonable support window) or upgrade their AWS SDK usage to v4 before upgrading Brighter.

Contributor guide

Open the contributing guide

Research direction

Start by inventorying the four v3 packages and their v4 counterparts listed in the issue, then trace where those packages enter the build and release pipeline. Confirm that v10.x obsolescence guidance, v11 package removal, unchanged v4 names, and a migration guide are all covered; verify the resulting package set and release configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, csharp
Domain
build-system, documentation, release
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.