You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+14-10Lines changed: 14 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,30 +4,30 @@
4
4
5
5
Supports `Event` and `Snapshot` storage providers like EventStore/Redis or SQL Server. Built with dependency injection in mind and seamlessly integrates with AspNetCore.
6
6
7
-
## Give a star :star: if you appreciate the effort
7
+
###Give a star :star: if you appreciate the effort
8
8
9
9
## What is Event Sourcing?
10
10
11
11
> Use an append-only store to record the full series of events that describe actions taken on data in a domain, rather than storing just the current state.
12
12
13
13
Start here [https://dasith.me/2016/12/02/event-sourcing-examined-part-1-of-3/](https://dasith.me/2016/12/02/event-sourcing-examined-part-1-of-3/)
14
14
15
-
## What does NEventLite solve?:goal_net:
15
+
## :goal_net:What does NEventLite solve?
16
16
NEventLite makes it easier to implement the event sourcing pattern in your .NET project. The library is opinionated and introduces some patterns to manage the life cycle of your [Aggregates](https://martinfowler.com/bliki/DDD_Aggregate.html) in an event sourced system. It will manage Creating, Loading, Mutating and Persisting Aggregates and Events.
17
17
18
-
## What doesn't it solve?:warning:
18
+
## :warning:What doesn't it solve?
19
19
20
20
NEventLite is **not a framework** that manages your application end to end. It doesn't enforce ports and adapters pattern or any of the application level concerns. The aim is to do one thing (Manage aggregate lifecycle) and do that well. If you need to implement command and event handlers you can have a look at something like [SimpleMediator](https://github.com/dasiths/SimpleMediator) or [Brighter](https://github.com/BrighterCommand/Brighter) and NEventLite will complement them nicely.
21
21
22
22
## What about v1.0? Wasn't it advertised as a framework?
23
23
*NEventLite V1.0 tried to solve similar problems but the scope of the project very large and it was decided to narrow down the scope. If you're still looking for reference it's hosted [here](https://github.com/dasiths/NEventLite/blob/master/legacy/v1.0).*
24
24
25
-
## Before you start
25
+
## :eyes:Before you start
26
26
27
27
- The library targets .NET Standard 2.0
28
28
-*Optional:* Installation of EventStore - [https://eventstore.com/](https://eventstore.com/) (You can use the in memory event and snapshot providers when developing)
29
29
30
-
## Using It
30
+
## :hammer:Using It
31
31
32
32
Define the events. They are simple pocos that will be serialized and stored in `EventStorage` when changes are saved. Events use `Guid` for Id by *default* but they can be changed to use any data type as Id. See `Event<TAggregateKey, TEventKey>` for reference.
33
33
@@ -144,7 +144,7 @@ Using the built in `Session` and `Repository` implementations to manage the Aggr
144
144
}
145
145
```
146
146
147
-
## Dependency Injection
147
+
## :syringe:Dependency Injection
148
148
149
149
The library is built with DI as a first class concept. Wiring it up is easy. This is an example of how you would do it with `Microsoft.Extensions.DependencyInjection`. You can find a detailed [example in the sample console app](https://github.com/dasiths/NEventLite/blob/master/src/Samples/NEventLite.Samples.ConsoleApp/DependencyInjection.cs).
150
150
@@ -166,9 +166,11 @@ The library is built with DI as a first class concept. Wiring it up is easy. Thi
// Instead of specifying each Aggregate and Snapshot type you can use the convenience extension method "ScanAndRegisterAggregates()" in the "NEventLite.Extensions.Microsoft.DependencyInjection" nuget library as shown below
169
+
// Instead of specifying each Aggregate and Snapshot type you can use the convenience
170
+
// extension method "ScanAndRegisterAggregates()" in the
171
+
// "NEventLite.Extensions.Microsoft.DependencyInjection" nuget library as shown below
@@ -184,7 +186,7 @@ The library is built with DI as a first class concept. Wiring it up is easy. Thi
184
186
}
185
187
```
186
188
187
-
If you want to use it with a different dependency injection framework, you can look at how the assembly scanning and registration is implemented for `Microsoft.Extensions.DependencyInjection` as an example and come up with your own implementation.
189
+
If you want to use it with a different dependency injection framework, you can look at how the assembly scanning and registration is implemented for `Microsoft.Extensions.DependencyInjection` as an example and come up with your own implementation. The file is [located here](https://github.com/dasiths/NEventLite/blob/master/src/Extensions/NEventLite.Extensions.Microsoft.DependencyInjection/Extensions.cs)
@@ -221,7 +223,7 @@ If you want to use it with a different dependency injection framework, you can l
221
223
}
222
224
```
223
225
224
-
## Storage providers
226
+
## :ledger:Storage providers
225
227
226
228
The library contains storage provider implementation for [EventSore](https://eventstore.com/) and we plan to include a few more in the future. We have also included an in memory event and snapshot storage provider to get you up and running faster.
227
229
@@ -258,3 +260,5 @@ There are more examples in the [Samples folder](https://github.com/dasiths/NEven
258
260
## Notes
259
261
260
262
Please feel free to contribute and improve the code as you see fit. Please raise an issue if you find a bug or have an improvement idea. The repository is shared under the MIT license.
263
+
264
+
**Share the :heart: and let your friends and colleagues know about this cool project. Thank you.**
0 commit comments