Skip to content
This repository was archived by the owner on Apr 27, 2023. It is now read-only.
This repository was archived by the owner on Apr 27, 2023. It is now read-only.

RFC: High-level architecture #6

@thewilkybarkid

Description

@thewilkybarkid

Problem

Libero will be a framework for producing publication and presentation platforms. It needs to:

  • scale up and down
  • allow for a high degree of customisation and extension: allowing users to share features, as well as catering for the bespoke
  • be deployable anywhere
  • easily integrate with other systems

Suggestion

  • Use a (micro)service-oriented architecture
    • Encapsulate features in separate applications
  • Overall choreography, local orchestration
    • Communication between services is decoupled and processing is asynchronous
    • Inside services it can be neither
  • Agnostic to where content originates and is owned
    • Source of truth can be elsewhere
  • Specify communication methods and integration points, allowing for extension
    • Require a small core of structure and data
    • Provide modules for common features
    • “Build your own”
  • Allow integration with external systems
    • API
    • Event bus
    • Message schema
  • Use existing standards where possible

Concerns

  • Distributed systems are more complex to understand, develop and run
    • Barrier to entry
    • Observability: distributed logging and tracing
  • Too-high level of abstraction provides little value
  • Yet another data format to define and translate data into to satisfy the user experience

Metadata

Metadata

Assignees

No one assigned

    Labels

    rfcA request for comments

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions