0.4.3 • Published 9 months ago

@rotorsoft/esml v0.4.3

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months 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

10 months ago

0.3.2

10 months ago

0.3.1

10 months ago

0.2.1

10 months ago

0.2.0

10 months ago

0.4.1

9 months ago

0.4.0

10 months ago

0.2.2

10 months ago

0.4.3

9 months ago

0.4.2

9 months ago

0.1.41

11 months ago

0.1.40

12 months ago

0.1.39

12 months ago

0.1.38

12 months ago

0.1.37

12 months ago

0.1.36

12 months ago

0.1.35

12 months ago

0.1.34

12 months ago

0.1.33

12 months ago

0.1.32

12 months ago

0.1.31

12 months ago

0.1.30

12 months ago

0.1.29

12 months ago

0.1.27

12 months ago

0.1.26

1 year ago

0.1.25

1 year ago

0.1.24

1 year ago

0.1.23

1 year ago

0.1.22

1 year ago

0.1.21

1 year ago

0.1.20

1 year ago

0.1.19

1 year ago

0.1.18

1 year ago

0.1.17

1 year ago

0.1.16

1 year ago

0.1.15

1 year ago

0.1.14

1 year ago

0.1.13

1 year ago

0.1.12

1 year ago

0.1.11

1 year ago

0.1.10

1 year ago

0.1.9

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago