0.4.3 • Published 2 years ago

@rotorsoft/esml v0.4.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

ESML

ESML, which stands for Event Storming Modeling Language, aims to create a user-friendly JSON schema that accurately describes the components of Event Storming Models with a level of detail that enables precise rendering of diagrams.

Instructions

  1. Start by specifying the system or domain you want to model (e.g., banking system, e-commerce platform, healthcare system).
  2. Identify the key entities or aggregates in the system. For each aggregate:
    • Specify the commands it can handle (e.g., CreateAccount, PlaceOrder).
    • Specify the events it can emit (e.g., AccountCreated, OrderPlaced).
  3. Define the actors or users interacting with the system. For each command:
    • Specify the actors
    • Specify the projectors they read for retrieving information (e.g., ViewAccountBalance, ViewOrderStatus).
  4. Determine the contexts in the system. A context is a grouping of related aggregates, actors, and policies. Specify the artifacts included in each context.
  5. Define the policies that govern the behavior of the system. For each policy:
    • Specify the events it can handle (e.g., HandleOrderCancelled, HandlePaymentReceived).
    • Specify the commands it can invoke (e.g., ProcessOrder, RefundPayment).

API

  • To render the SVG model

    esml(code: string, scale: number) => { error?: Error; svg?: string; width?: number; height?: number };
  • To embed the canvas in your HTML document

    type Options = {
        SCALE: number;
        WIDTH: number;
        HEIGHT: number;
        coordsSpan?: HTMLSpanElement;
        zoomSpan?: HTMLSpanElement;
        fitBtn?: HTMLButtonElement;
    };
    
    type State = {
        code: string;
        x?: number;
        y?: number;
        zoom?: number;
    };
    
    const canvas = new Canvas(document: Document, container: HTMLDivElement, options?: Options);
    
    canvas.on("transformed", e => {
        console.log(e);
    });
    
    const error = canvas.render({ code, x, y, zoom });
    if(error) console.log(error);

Playground

Enjoy playing with ESML at Playground

CDN

Sample Model

WorkDesk Ticket Service

0.3.0

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.2.2

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.1.41

2 years ago

0.1.40

2 years ago

0.1.39

2 years ago

0.1.38

2 years ago

0.1.37

2 years ago

0.1.36

2 years ago

0.1.35

2 years ago

0.1.34

2 years ago

0.1.33

2 years ago

0.1.32

2 years ago

0.1.31

2 years ago

0.1.30

2 years ago

0.1.29

2 years ago

0.1.27

2 years ago

0.1.26

2 years ago

0.1.25

2 years ago

0.1.24

2 years ago

0.1.23

2 years ago

0.1.22

2 years ago

0.1.21

2 years ago

0.1.20

2 years ago

0.1.19

2 years ago

0.1.18

2 years ago

0.1.17

2 years ago

0.1.16

2 years ago

0.1.15

2 years ago

0.1.14

2 years ago

0.1.13

2 years ago

0.1.12

2 years ago

0.1.11

2 years ago

0.1.10

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago