Madeleine on Rails

27
Off the Rails (Madeleine on Rails) AndrzejKrzywda.com

Transcript of Madeleine on Rails

Page 1: Madeleine on Rails

Off the Rails(Madeleine on Rails)

AndrzejKrzywda.com

Page 2: Madeleine on Rails

Not even a plugin yet.

Page 3: Madeleine on Rails

Work in progress....

Page 4: Madeleine on Rails

Started on Saturday at 2pmFinished at 3.30am

Page 5: Madeleine on Rails

Demo the sample app.

Uses Madeleine.

Page 6: Madeleine on Rails

What is Madeleine?

Page 7: Madeleine on Rails

Imagine a world without relational databases

Page 8: Madeleine on Rails

No ORM!

Page 9: Madeleine on Rails

You operate on objects that live in memory.

Page 10: Madeleine on Rails

Extremely fast!

Page 11: Madeleine on Rails

Yes, you have to have enough RAM.

Page 12: Madeleine on Rails

Sometimes your objects are serialized to a file.

Page 13: Madeleine on Rails

Changes between snapshots are serialized as

‘command’ objects.

Page 14: Madeleine on Rails

The whole concept is called “Prevalence”.

Page 15: Madeleine on Rails

Prevayler is a Java implementation of this

concept.

Page 16: Madeleine on Rails

Madeleine is a Ruby implementation of this

concept.

Page 17: Madeleine on Rails

Remember Instiki?

Created by DHH, the first versions were using

Madeleine.

Page 18: Madeleine on Rails

SnapshotsCommandsRoot object

Page 19: Madeleine on Rails

Automatic creation of command objects.

Page 20: Madeleine on Rails

How to apply it to Rails?

Page 21: Madeleine on Rails

Single process only

Page 22: Madeleine on Rails

config/initializers/madeleine.rb

Reads from snapshotStarts the AppService

Starts a “snapshotting” thread.(saves the files to db/madeleine/)

Add ApplicationController.app method

Page 23: Madeleine on Rails

app/controllers/tasks_controller.rb

Communication with the app.rb

Page 24: Madeleine on Rails

Enable classes caching (even in development)

Otherwise you loose everything on the next request.

Page 25: Madeleine on Rails

How to deal with “schema” changes?

Object migrations.

Page 26: Madeleine on Rails

Summary

It seems to work.a VERY different way of thinking

Pure objectsA plugin?

Page 27: Madeleine on Rails

Thanks!