Skip to content

Commit 6664f20

Browse files
Life session 11.06.2024
1 parent a50f502 commit 6664f20

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

developer/src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
- [Architecture](architecture/README.md)
66
- [Plugin System](plugin/README.md)
7+
- [Life Sessions](plugin/life_sessions.md)
78
- [Wasmer](plugin/wasmer/README.md)
89
- [Proposal](plugin/wasmer/proposal.md)
910
- [Plugin Factory](plugin/wasmer/plugin-factory.md)

developer/src/plugin/life_sessions.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Life Sessions
2+
3+
## 11.06.2024
4+
5+
### Meta
6+
7+
- **Topic**: Plugins Integration
8+
- **Participants**: Oliver, Ammar, Kevin, Dmitry
9+
10+
### Conclusions / Decisions
11+
12+
**Switch `parse()` to async**
13+
- **TODO**: The method `parse(..)` of the trait `Parser` has to be switched to `async`.
14+
- **Motivation**: Since the selected WASM runtime (`wasmtime`) is asynchronous, the `parse(..)` method should also be async. If the `parse(..)` method remains synchronous, we will have to use `futures::block_on(..)` for plugins, which is excessive. We should monitor performance with this change.
15+
- **Assigned to**: Ammar
16+
17+
**DLT as the first plugin**
18+
- **TODO**: The first example of a plugin should be the DLT plugin.
19+
- **Note**: We will not push the plugin into production.
20+
- **Motivation**: Implementing the DLT plugin covers all levels of the application from the client to the Rust core, allowing for comprehensive testing. Additionally, with native DLT support, we can compare performance.
21+
- **Assigned to**: Ammar, Dmitry (support with integration into levels above the Rust core)
22+
23+
**Provider as an additional type of plugin**
24+
- **TODO**: Nothing for now, the topic is postponed.
25+
- **Idea/Motivation**: It was agreed that in some use cases (like MDF, for example), having two parts (source, parser) for one plugin can be unnecessary. This is also relevant when a parser has a very specific source. In such cases, we don't need to split it into source and parser; we can have a plugin that introduces a `MessageProducer` with a `next()` method to provide the next available message. In general, such plugins seem reasonable.
26+
27+
**Not discussed**
28+
- We still have `Parser<T: LogMessage>` with a generic type. But we never actually use `LogMessage` for anything except converting to a string. Do we really need it?

0 commit comments

Comments
 (0)