Getting started with Tokumei, Cloud Native web applications

Tokumei helps with building cloud native web applications. Some of the features that help to make it cloud ready.

  • Containerised by default, making it easy to deploy to a variety of cloud platforms.
  • Sets up HTTP/2 over TLS by default to be performant and secure
  • Document Driven, why use a routing DSL and write documentation when the documentation format can be a DSL
  • Multi-node, by using docker-compose testing running multiple containers is easy. Should result in less surprises when scaling up in production
  • Environment based configuration, make configuration set up as close as possible to the methods used in production

This video is a demonstration of what will be possible with Tokumei. It is ready to experiment with but still beta.
If you have any questions please do ask. There is a channel on the elixir-lang slack for all things Raxx related.

8 Likes

I enjoyed it as a good intro :slight_smile: I think it would be good if you do a few where you explore different parts of the framework in a bit more detail.

I like the defaults (https, http2). Out of curiosity, what’s causing the livereload bug with the documentation?

I use the ExSync to recompile modules when the files change. Unfortunately I don’t know if it works with @external_resource in modules. There is this open issue, hopefully it can get resolved soon or maybe there are other synchronisation libraries I should look at.

I just upgraded to Ace 0.14 but it’s not worked with the Tokumei DSL, how can I use the Tokumei router with the newest version of Ace?

You can use the router based on api blueprint, as covered in the video. Because Raxx.Server has multiple callbacks to implement the simple router does not work. I hope to add other router schemes beyond the api blueprint based version in the next few releases

The latest version of ExSync now has configuration to add extra dirs and path extensions to watch.

So the livereloading of documentation is now possible.

Tokumei project renamed to Raxx.Kit

This project has evolved. Raxx.Kit now exists to contain project generators to get started with Raxx.
The Framework part of the project has been broken into composable middleware such as Raxx.ApiBlueprint