Setting out

on a journey

Using an iterative approach
for developing Loudflow.

Starting with an initial skeleton implementation of the front-end web application and back-end services, development will continue in iterations which add on to the previous set of features to produce a new enhanced and stable release. These iterative releases will be documented as milestones here and in the project's Github repository with corresponding list of features and a rough timeline.

This approach fits well with the exploratory research and learning goals of the project.

Currently, the initial skeleton is being built with the following technology stack and features:

  • Back-end scaffolding using Lagom microservices and event sourcing framework with Scala, Akka, Cassandra and Kafka.
  • Minimal implementation of Model service with 2D graph representation and basic features including add/remove/move entities (i.e. agents and things), configurable cohabitation behavior (i.e. block, push, kill), etc.
  • Minimal implementation of Agent service with an internal clock, perception via model events, a local memory of the model, and random turn-based action.
  • Minimal implementation of Simulation service with support for an internal clock, initial model population, time-based population growth and decay, etc.
  • Deployment to and integration with AWS using Docker and Kubernetes - possibly EKS via CloudFormation ?. Also IAM integration to support deployment to user accounts.
  • Minimal front-end (user and admin) web applications using React, Gatsby and Netlify.
  • Example application based on the TileWorld testbed (Lees, 2002 - A history of the Tileworld agent testbed).
Please sign up so we can keep you updated on our progress.