Expand description
mako-markt — market data library for German energy market (MaKo / marktd).
§Architecture
crates/mako-markt/ ← traits, domain types, CloudEvents structs, makod HTTP client
NO axum, NO utoipa, NO server framework
services/marktd/ ← axum handlers, routes, config, PostgreSQL impls, main.rsThis mirrors the mako-engine / makod split exactly:
mako-engine defines traits only; makod wires axum + SlateDB.
§Modules
| Module | Contents |
|---|---|
domain | Sparte, ProcessStatus; re-exports MaloId, MeloId, MarktpartnerId from rubo4e::identifiers; nad_agency_code() for NAD DE3055 coding authority |
repository | Repository traits: MaloRepository, MeloRepository, SubscriptionRepository, CorrelationIndex, PartnerRepository, VersorgungsStatusRepository, MaloGridRepository, NbEnergiemixRepository; record types incl. VersorgungsStatusRecord, LieferStatus, NbContractRecord, MaloGridRecord, NbEnergiemixRecord |
cloudevents | CloudEvents 1.0 envelope types: InboundMakoEvent (from makod) and MarktEvent (marktd-emitted de.markt.*) |
commands | ERP command-name constants shared between makod’s registry and dispatching services (processd, …) |
[makod_client] | Typed HTTP client for makod admin + command APIs (reqwest-backed); requires makod-client feature |
error | MdmError — all domain-level error variants |
[testing] | In-memory test doubles (behind testing feature): incl. InMemoryVersorgungsStatusRepository, InMemoryMaloGridRepository |
Modules§
- bo4e
- mako’s BO4E boundary: the gate every payload crosses, the structural rules the standard states, and the typed columns a stored document is indexed by.
- cloudevents
- CloudEvents 1.0 envelope types for
mako-markt. - commands
- ERP command names shared between
makod’s command registry and its clients. - domain
- Domain identifier types and shared enums.
- error
- Domain error type for
mako-markt. - repository
- Repository traits for all
marktdaggregate types.