Architecture 11 Risks And Technical Debt - lukislp/mowdeck GitHub Wiki
11. Risks and technical debt
| Risk | Mitigation |
|---|---|
| Unofficial protocol: a Mammotion firmware update can break features | Pin the PyMammotion version; apply mower firmware updates only after community feedback |
| Double access while the existing Mammotion integration in Home Assistant runs | In the spike use a second shared Mammotion account; remove the old integration after the MVP |
| Safety when driving or spot mowing | Dead-man switch, blade off in transfer, visible emergency stop, never bypass sensor stops |
| Login and access | Pluggable login, Argon2id, API tokens per client, login rate limit, short sessions, access from outside only via Tailscale or HTTPS proxy |
| Maintenance effort of many small programs | Monorepo, shared contracts, one CI, versioned public API early |
| Terms of use | Uncritical for personal use; review before redistribution |
| WLAN control not yet available | Bluetooth is default; WLAN is a second adapter behind the same interface |
| Microservice complexity for one household | Same pattern for every service, one Compose file, interfaces that would allow several services in one process |
| Data leaks between accounts | Account ID only from token, filter in each query, per-service tests with foreign data |
| Distributed failures | Command IDs, expiry, emergency stop priority, traces across services |
| Payment and legal duties once others pay | Only in Phase 4; choose a provider that handles taxes |
Open questions for the spike
- Does PyMammotion deliver map geometry (zones, paths, dock) in a usable form?
- Does it support manual driving and mowing jobs with own limits?
- How does the camera stream leave the mower and can it be tapped locally?
- What is the command latency over the Bluetooth bridge, and is it enough for the joystick?
- Which entities and services should the HACS integration offer?
- Does it fully support 4G mowers and network RTK, including fix status and cellular connection?
- Does the mower report the correction source (station or network RTK)?
- Which bridge firmware: ESPHome Bluetooth proxy or a lean custom ESP32 firmware?
- Payment provider for EU customers: Stripe with tax module or a merchant of record such as Paddle?
- How many mower connections can one Device-Gateway instance hold (sharding size)?
- Can the LUBA drive arbitrary paths or only zones with its own patterns (own route versus native job)?
Technical debt
None recorded yet. Known deliberate shortcuts: the Compose stack uses one shared password for all service database roles and mounts the Docker socket read-only into Traefik; both are acceptable for the development defaults and must be revisited before cloud operation.
Mirrored from docs/architecture/11-risks-and-technical-debt.md at commit 94c46ef36cabac4c3a0bacfc0cc0c0af4defdca3. Edit the file in the repository, not this wiki page.