August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)

Mini-Axon

Build your own Kamaelia Core

Introduction

Standing

Walking

Interlude

Talking

Conversing

Interlude

Summary

Introduction

When using any system, library, or framework, you're likely to have a better understanding of the system and how to better use it if you really understand how it works. That is you've written the system rather than someone else. Our preferred approach to date so far for teaching a novice how to use to Kamaelia has been to get them to write a version of the core concurrency system. This is framed as a series of exercises. After having built it, they realise that the system is really just a simple skein over simple programs.

Furthermore, this set of exercises has normally been done within less than 2 weeks of the novice learning python. If you're a new programmer, and you've learnt a certain core of python, you should be able to do and follow these exercises. It might look daunting, but it should be fine. If you get stuck, please feel free to come chat on IRC or on the mailing lists!

Python pre-requisitives:

What's in this tutorial?

  1. Write a basic microprocess
  2. Build a simple schedulerto run the microprocesses
  3. Interlude, discussing progress so far and what you can do with microprocesses and schedulers, putting the next two exercises in context
  4. Turn a microprocess into a simple component
  5. Create a postmanto deliver data between microprocesses
  6. A second interlude where you see how to use your framework to build a simple multicast server that can serve a file over multicast. The resulting components can be used with the main Axon system as they can with your mini-axon system.
  7. Summary

Introduction

Standing

Walking

Interlude

Talking

Conversing

Interlude

Summary

Feedback, Questions ?

Please leave feedback here! Hope you found this tutorial interesting, useful and doable!