1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! Struct and Trait correlated to Application
pub use ApplicationBuilder;
pub use InternalApplication;
/// Application are high order logical seperator.
///
/// A chekov application is a simple entity that will represent a single and unique domain
/// application.
///
/// It is used to separate and allow multiple chekov application on a single runtime.
///
/// It's also used to define the typology of the application, like which storage will be used or
/// how to resolve the eventbus's event
///
/// The Application isn't instanciate at all and it's useless to define fields on it. It just act
/// as a type holder for the entier system.
///
/// ```rust
/// #[derive(Default)]
/// struct DefaultApp {}
///
/// impl chekov::Application for DefaultApp {
/// // Define that this application will use a PostgresBackend as event_store
/// type Storage = event_store::prelude::PostgresBackend;
/// }
/// ```