Creating Wardley Maps using Lambda Functions

Creating Wardley Maps using Lambda Functions

One of the biggest limitations that I had when trying to use/create Wardley Maps was my inability to programatically create the maps (ideally via and DSL or something like DOT language).

What I really wanted was to be able to create Maps from an serverless environment, namely from an Lambda Function.

After some research, I was able to find a nice way to do just that :) (all the code is available on this GitHub repo

After playing with a number of scenarios and techniques I zoomed in on the following tech stack:
  • AWS API Gateway exposes an url that calls an
  • Lambda function, which saves the data supplied (coffeescript) in a file that will be loaded by an HTML page 
  • the html will load up [visjs]( which is what will render the graph (in the browser)
  • start a local python web server, that 
  • uses pyppeteer to open up a headless version of chrome, and
  • opens the page exposed by the web server in the headless browser, and
  • takes screenshot of the page, and
  • returns png value (to the browser or lambda caller)
  • Hugo was also used locally during development

1) Here is the first 'kinda useful' version of the programatically generated map:

2) Here are the nodes positioned by row and col

3) Here is the next evolution, now with the ability to control the position of the components by row and col

4) Setting the springConstant to a low value seems to have the least side effects when adding the connections between components (note how it possible to overwrite specific node positions using the `node_fixed_x_y` method)

5) Here is the first working(ish) POC that shows the value chain

6) Since we are drawing the map in an HTML 5 canvas, we can start to add shapes and text

7) version that just about looks like the original version of the 'tea' map :)

8) Here is the first pass at running the transformation inside a lambda function

9) here is the first PDF of an Wardley Map generated inside an Lambda function (with all values provided programatically)

Next article 3 Wardley Maps Templates I'm using to talk to Generation Z Developers

Comments - January 25, 2019

Some times its a pain in the ass to read what blog owners wrote but this website is rattling
user pleasant! - January 23, 2019

Its like you read my mind! You seem to know so much about this,
like you wrote the book in it oor something. I thimk that you could do with a few pics to drive the message home a little bit,
but other than that, thos is magnificent blog. An excellent read.
I’ll definitely be back.

Leave a comment

* Required fields