Chuyển tới nội dung chính

Application Structure

Fluvius does not require a fixed layout. A practical service keeps framework wiring separate from domain declarations and persistence:

myapp/
├── __init__.py
├── pkginfo.py
├── main.py
├── config.ini
├── domain/
│ ├── aggregate.py
│ ├── command.py
│ ├── domain.py
│ ├── model.py
│ └── state.py
├── data/
│ ├── schema.py
│ └── manager.py
├── query/
│ ├── manager.py
│ └── resources.py
└── tests/
├── conftest.py
└── test_api.py
  • pkginfo.py supplies metadata to create_app.
  • main.py composes authentication, domain, query, MCP, transport, media, and application routes.
  • domain/ owns command-side behavior.
  • data/ owns connectors, schemas, and data managers.
  • query/ owns validated read resources.

Import command, event, response, and message modules during startup so their domain subclasses register. Prefer package-level Fluvius imports and keep environment-specific DSNs and secrets outside source control.