Skip to content

Module Design

A Module is the Functional Unit of decomposition for Arda’s system as described in Module Concept. Modules expose API Endpoints and also consume other
API Endpoints from other Modules. While there will be different types of Modules, a very common type is the
Data Authority Module which captures and models a part of the business domain or information model.

Common Module

The common module is a Library that collects capabilities that are used directly (at the language level) by other modules.

  • api: Definition of Api Endpoints for different technologies, including Request-Response and Streaming Endpoints.
  • component: Support the creation and Configuration of Runtime Components
  • lang: Convenience Extensions to Kotlin Language constructs (e.g. Use of Result type, exception handling, …).
    In particular, it introduces a typed query DSL that can be used against data stores and collections and be serialized/deserialized to Json for storage and transmission
  • module: Support for the creation and configuration of Functional Modules and Endpoints.
    • data authority A particular kind of module that offers persistent CRUD and Querying capabilties on well defined sets of Entities
  • persistence: Support for persistent storage of information.
  • reference: System wide constants and known values.
  • runtime: Capabilities to support Cross Cutting Concerns and binding to Runtime Capabilities.
  • service: Reusable Implementations of Service concepts for Functional Modules.
  • testing: Extensions and Convenience utilities for unit testing.
  • util: Miscellaneous Utilities.
  • Data Authority Module Structure

Copyright: © Arda Systems 2025, All rights reserved

Comments