Skip to content

Commit 1cdfad7

Browse files
MVP of the application (#1)
* Created fixture for binary row parser that maps data directly into columns * Add full delete rows * Introduce BinaryTable abstraction to make to remove mess from rows parsing * Introduce abstraction over binary log table map * Table map event is not converted into BinaryTable struct to simplify parsing of bin row. * Added working parsing logic for write rows event without null values * Implement row parsing algorithm * Concept of EventObservers, implemented configurable entity observer * Make macros better organized * Move table match into combinator for EventObserver trait and make entity observer product specific * Separate log recording into trait to decide later how communicatino is going to happen * Code cleanup * Move observer and event into replication, move product observers into own module path * Add product EAV attribute default configuration * Make macros properly exported * Small refactor of collectors * Introduce changelog output - Make output tested and configurable - Introduce JSON format for human readable form - Introduce MessagePack for compact and fast readable binary representation * Application skeleton * Code cleanup with cargo fixer * Make aggregate variation that writes directly to I/O. * Update documentation, run cargo fix and update changelog
1 parent 067f02c commit 1cdfad7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+6779
-399
lines changed

BRAINSTORM.md

Whitespace-only changes.

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased]
99

1010
### Added
11-
- Added `ReplicationReader` to attach to binlog stream and process events into `ReplicationObserver`
11+
- `Database` as a building block for connection management in application.
12+
- `schema::TableSchema` for mapping binary row into actual column names
13+
- `replication::BinaryRow` and `replication::BinaryRowIter` for making working with rows based binary events easier to work with
14+
- `replication::Event` to make easier processing of similar table changes
15+
- `mapper::ChangeLogMapper` to transform `replication::Event` into business domain change item
16+
- `log::ItemChange` to store multiple domain model specific changes in an enum
17+
- `aggregate::Aggregate` and `aggregate::AsyncAggregate` to process `log::ItemChange` in batches and product output of `aggregate::ChangeAggregate`
18+
- `app::Application` to build easily your own changelog customized apps
1219

1320
[unreleased]: https://github.com/EcomDev/mage-os-database-changelog/compare/0a7c672...HEAD

0 commit comments

Comments
 (0)