Skip to content

Changelog

All notable changes to this project will be documented in this file.

Version 1.0.0

The Excalidraw component library contains 72 shapes.

Notable changes

New library components

  • Fundamentals
    The 'processor-context' component of the KSTD Excalidraw library
    The Processor Context is a wrapper component to visually group advanced PAPI (Processor API) features with the custom Processor they belong to. Examples: Custom State Stores, Punctuators.
  • Topics & Events
    The 'tombstone' component of the KSTD Excalidraw library
    Tombstone.
    Deletions (null values) are called tombstones within the Kafka context.
  • Kafka Streams DSL
    The 'dsl-windowed-by' component of the KSTD Excalidraw library

    windowedBy applies a time windowing strategy to a grouped stream, partitioning records into defined intervals for subsequent aggregations.

    # Stateful operation.

  • Windowing
    • Emit Strategy:
      The 'windowed-emit-on-update' component of the KSTD Excalidraw library

      Emit on update strategy emits a new, updated window result every time the aggregated state changes due to incoming records.

      The 'windowed-emit-on-close' component of the KSTD Excalidraw library

      Emit on close strategy emits the final result only once when the window is considered complete and closed.

    • Suppressed (untilWindowCloses; untilTimeLimit)
      The 'windowed-suppressed' component of the KSTD Excalidraw library

      Suppressed is an operator that buffers intermediate results and only forwards the final aggregate once the window is complete (or after a defined grace period).

  • External Interfaces
    The 'external-db' component of the KSTD Excalidraw library
    External DB can be used for highlighting integration or interaction with an external DB. This can e.g. be used to indicate Kafka Connect or other CDC data flows.

Removed library components

  • External Interfaces
  • API (alternative 2)
  • External System (alternative 2)

Improved Arrow Linking

Multiple components, most importantly topics and state stores, have been updated to allow easy linking/docking of arrows. This is particularly useful when using elbow type arrows.

Updates to the Documentation

  • Improves existing documentation (Notation)
  • Reflects all updated and new components.
  • Improved descriptions.

Version 1.0.0-beta.3

The Excalidraw component library contains 67 shapes.

Notable changes

Updates to the Documentation

  • Improves existing documentation
    • KSTD Standard: all API varieties of similar operations are documented (e.g. filter <-> filterNot)
  • Minor update to the example: ‘Ecommerce Product View’

Cosmetic improvements

  • updated text for ‘split’ -> ‘split +branch’
  • updated text for ‘reduce, aggregate’ -> ‘reduce; aggregate’ (after adding the operator, edit the text and remove one of the two)

Version 1.0.0-beta.2

The Excalidraw component library contains 67 shapes.

Notable changes

Updates to the Documentation

  • Improves existing documentation
    • KSTD Standard: added diagrams for ‘Topology Layout and Internals’ and new section on ‘Swimlanes’
    • Design Principles: Improved section ‘Crafting Software Architecture Diagrams’, added references to library components
    • Architecture Diagram - Best Practices: improved clarity and text formatting
  • Adds new documentation page: ‘Tips and Tricks’
  • Minor update to the example: ‘User Flight Booking - Status Update Notifications’
  • Misc. improvements to the website

Version 1.0.0-beta.1

The Excalidraw component library contains 67 shapes.

Notable changes

Sub-topology

The sub-topology component now has a subtle background to make it better visible when placed within the topology component. All examples featured on the KSTD website have also been updated to the beta version. (Many thanks for the feedback @Sophie! 🦦)

Cosmetic improvements

Various library components’ visual look was slightly improved.

Version 1.0.0-alpha.4

The Excalidraw component library contains 67 shapes.

Notable changes

Introducing ‘shapes’ for DSL operators

Previously, all DSL operators were visualized in a circular shape. From this version onwards, the notation has been extended to differentiate between four basic shapes to subtly provide hints on the operator’s processing characteristics and how this affects the topology.

The new shapes are defined as follows:

  • circular: basic behaviour; no changes to the record key/value; stateless
  • square: stateful; uses state stores and, by default, leads to an internal changelog topic to be created in Kafka
  • diamond: key-changing operator, may lead to an internal repartitioning topic to be created in Kafka on subsequent operations
  • square+diamond: potentially both key-changing and stateful

PS: The new shapes, part of the new ‘Legend’ component, are shown below.

New library component: ‘Legend’

  • A basic diagram legend has been created
  • Comes in two variants: portrait & landscape orientation

Topic components revised

  • There are now three different variants provided for Kafka Topics
  • Basic: pipe shape and topic name; without the Kafka logo
  • Default: pipe shape with a small Kafka logo; topic name + basic topic config in 2nd line of the text
  • Plus: pipe shape next to the large Kafka logo; topic name + advanced topic config in subsequent lines of the text

Numeric footnote indicators / Use-case example steps

  • A new purple-coloured circular ‘button’; 2 digits (0..99)
  • No strict guidelines or purpose, but it can be useful to add, e.g.
  • numbered indicators to add footnotes for specific details in the diagram
  • outline process flow (or orchestration) steps to describe how a particular complex use case is handled by the topology and/or business logic

New toggle descriptor for ‘Read-only State Stores’

Version 1.0.0-alpha.3

This is the initial version that is made available for closed alpha testing.

The Excalidraw component library holds 59 shapes.