#1406 new todo

clarify the purpose of Session-Commands

Reported by: Ichthyostega Owned by:
Priority: grave Milestone: 1alpha
Component: lumiera Keywords: steam gui session persistence design roadmap
Sub Tickets: #300, #990, #1046, #1059 Parent Tickets: #268, #540, #697, #978, #1154, #1234

Description

As Lumiera Architect,
I want to evaluate the future role of Commands vs. Events,
in order to decide which part of the existing Command implementation to maintain.

Change of Goals

Initially, a Command implementation was established based on the Memento-Pattern. The idea, that Commands shall be logged prior to execution as in a Database was a stated goal from the very beginnings of the Lumiera project. However, taking this idea seriously and thinking through the consequences led us to discover various concerns and solutions — which at the same time were also encountered in the realm of industrial IT systems, notably in the finance industry (where I worked for 20 years). This resulted in a shift towards an Event Sourcing (and CQRS) architecture.

Meanwhile, the connection between Session core and UI (#1099, #1042) was actually established, in a different way than initially expected: Since this crucial link became a messaging system...

  • the role of the »Session Objects« is now mostly conceptual, turned into an internal detail of the Steam-Layer, and subject to realignment to concerns of event propagation and eventual consistency.
  • the UI no longer depends on a data model, rather on a structured entity scheme with semantic attributions
  • and what is bound into and executed by the commands will be an instruction language rather,
    rendering the capture of memento state a moot point

Given that the implementation of the existing Session-Command framework was quite a stretch with the limited (pre C++11) language capabilities of that time, it seems that a re-defined Command implementation could be much more accessible — which however requires a clarification about

  • the role of Command parameters
  • the symbolic nature commands seem to take on in the emerging UI framework

Change history (1)

comment:1 by Undercover Agent, at 2025-12-25T00:00:00Z

blockedby: 300, 990, 1046, 1059
blocking: 268, 540, 697, 978, 1154, 1234
Parent Tickets: 268, 540, 697, 978, 1154, 1234
Sub Tickets: 300, 990, 1046, 1059
Note: See TracTickets for help on using tickets.