Skip to content
Kenneth Gulbrandsøy edited this page Dec 30, 2019 · 10 revisions

Principles

All development MUST follow the following principles:

  • DDD

  • CQRS

  • Event sourcing

    • One event stream per aggregate instance (minimises contention with positive locking)
    • Events from Event Sourcing (Source Events and Domain Events) SHALL NOT be shared externally
    • Only Integration Events are shared between bounded contexts
  • Privacy by Design

    • PII is stored only one place
    • New PII uuids are generated for each shared context of aggregate roots (aka. Incident)
    • Only PII uuids are stored in streams
    • PII CAN be stored in memory in Aggregate roots (lookup from PII context using uuid)

Aggregates

  • Tenant
    • AppConfig
    • BaseMap
  • Incidents
    • Subjects
    • Clues
  • Operations
    • Objectives
    • Missions
    • Units
    • Allocated Personnels
    • Allocated Transports
  • Tracking
    • Devices
  • Affiliations
    • Divisions
    • Departments
    • FleetMap
  • Personal Identifiable Information (PII)
    • Subjects
    • Personnels
    • Competence
  • Resources
    • Transports
    • Equipments

References

Clone this wiki locally