Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ the Explanations, API Reference, How-To's and Tutorials guides.
`Commanded` is based on [github.com/commanded/commanded](https://github.com/commanded/commanded).
This fork introduces new features with an independent release cycle, allowing
for thorough testing before contributing back to the original project.

**See [Fork Differences](guides/explanations/fork-differences.md) for a complete
list of changes and new features compared to the upstream repository.**
85 changes: 85 additions & 0 deletions guides/explanations/fork-differences.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Fork Differences from Upstream

This document tracks all changes made in the `straw-hat-team/commanded` fork compared to the upstream `commanded/commanded` repository.

## Overview

This fork maintains an independent release cycle to introduce new features and improvements with thorough testing before considering contributions back to the original project.

**Upstream Repository:** [github.com/commanded/commanded](https://github.com/commanded/commanded)
Comment thread
yordis marked this conversation as resolved.
**Fork Repository:** [github.com/straw-hat-team/commanded](https://github.com/straw-hat-team/commanded)

---

## Breaking Changes

### **Removed ProcessManager Support** ❌
[PR #24](https://github.com/straw-hat-team/commanded/pull/24)

**Changes:**
- Removed all ProcessManager modules and tests
- Removed ProcessManager documentation
- Removed ProcessManager configuration
- Updated documentation to remove ProcessManager references

**Reason:** The saga pattern can be achieved using event handlers with read models and aggregates, eliminating the need for the additional ProcessManager abstraction.

---

### **EnrichedMetadata Struct** 🔄
[PR #11](https://github.com/straw-hat-team/commanded/pull/11)

**Changes:**
- Replaced plain map metadata with `Commanded.EventStore.EnrichedMetadata` struct
- Updated event handlers to use struct

**Breaking:** Event handler callbacks now receive `%EnrichedMetadata{}` instead of a plain map.

---

## Features Added

### **UUIDv7 Support** ✨
[PR #22](https://github.com/straw-hat-team/commanded/pull/22)

**Changes:**
- Added UUIDv7 generation support for command and event IDs
- Modified command router to use `UUID.uuid7/0` by default

---

### **Configurable UUID Provider** ✨

**Changes:**
- Integrated `Uniq.UUID` library for UUID generation
- Made UUID provider configurable
- Simplified UUID module by delegating to Uniq

---

### **Aggregate Telemetry for Version Conflicts** ✨
[PR #8](https://github.com/straw-hat-team/commanded/pull/8)

**Changes:**
- Added telemetry events for wrong expected version errors in aggregates
- Enhanced monitoring capabilities for version conflicts

---

### **Custom Event ID Support** ✨
[PR #2](https://github.com/straw-hat-team/commanded/pull/2)

**Changes:**
- Added `Commanded.Event.EventId` protocol
- Ability to set custom event IDs from event structs
- Support for deterministic event IDs

---

### **EventStore Adapter** ✨
[PR #1](https://github.com/straw-hat-team/commanded/pull/1)

**Changes:**
- Bundled `Commanded.EventStore.Adapters.EventStore` directly into Commanded
- Eliminates need for separate `commanded_eventstore_adapter` package dependency