February 22, 2017

Muon Developer Diary

I’m going to be writing regular updates on what we are doing in the Muon project and highlighting different areas of the projects. I’ll try to keep this weekly, but we’ll see how that goes!

They will split into two main sections, Focus and Updates. Focus will feature a part of Muon and related projects and go in depth on some area or other. Updates will describe the week by week developments in the world of Muon.

Focus - An Overview of Muon

In this inaugural post, I give an overview of the projects and how they fit together.

Read the intro blog post

The projects can be split up into Muon Implementations, Muon Plugins and Services built with Muon

Muon Projects

  • Muon CLI - The CLI interface to Muon systems.

  • Muon Java - Java implementation. First built and generally the place things are experimented with first.

  • Muon Node - Node implementation of Muon

  • Muon Clojure - Clojure wrapper around Muon Java.

  • MuonJs - Muon running in the browser.

  • libMuon - C++ implementation of Muon, highly experimental.

Muon Plugins

Given the aggressively polyglot nature of Muon, we have to find a way to avoid the matrix effect of having extensions and an arbitrary number of Muon implementations. We’re handling this by defining APIs to allow us to build most implementations in C++ and have a method for integrating into the three major Muon environments. This will cover Discovery and Transport plugins. Protocols will be handled by the Protocol Language.

These are not yet usable, however do expect many more of these when the native build pipeline and language wrapping approach is completed.

Services built with Muon

Many protocols don’t operate in a peer fashion. Instead there is a definite server side that does something rich on your behalf.

The prime example right now is Photon, an event storage microservice.

  • Photon - an advanced event store and stream server

  • Aether - Identity management facade for Muon systems.

  • Muonjs Gateway - allow Muon systems in the browser to connect to server side via a transport level message router.

There are a set of other experimental projects in the repos that I’ll leave for now.

This is a quick overview of the current projects. There is a lot in flight, more next time!


Over the past few weeks :-

  • We’ve made substantial progress on the protocol language, ably led by Sergio Alvarez and Luis Oliva. See the repo where work is underway

  • We added features to Photon to support DDD style event sourced aggregate routes (shallow streams) and initial clent support. More in a couple of dev diaries time where I’ll focus on Photon.

  • Created an embedded Muon event store to support unit testing event sourced applications. This implements the event related protocols and operates over the Muon in-mem transport/ discovery. Initially, this is for the JVM. Node will be next.

This is a developer diary entry for the Muon project, showing what we’ve done on the project over the past week.

You can find the home of the Muon project at http://muoncore.io, and at the Muon Core github org.

diary, muon, microservices, Browse all tags

©2017 David Dawson Ltd. All rights reserved.