4
The idea for Mongrel2 is slightly controversial, but it has potential. Here's
5
some criticisms about the proposed design, and I'm looking for more.
8
Criticism: Windows Registry
9
---------------------------
11
"Using sqlite for the config file will be like working with the windows registry."
13
Mongrel2 now has support for configuring itself from anything, including the
14
default of a sqlite3 database. After a year of using Mongrel2 in production I can
15
tell you this is freaking awesome. It's nothing like the Windows Registry and
16
people telling you that are just trying to trot out an old Window$-Hater Linux
17
Guy trope to scare you.
20
Criticism: Config Files Are Better
21
----------------------------------
23
I work in a fully automated developer operations world, and have found
24
that no, configuration files are not better. Configuration files suck
25
unless you're some jerk who likes editing them. The rest of us generate
26
them from a Chef or Puppet server and get on with our lives.
29
Criticism: It should be event based, not use coroutines or threads.
30
-------------------------------------------------------------------
32
It is event based in that it uses kqueue/epoll/poll/select, but it abstracts
33
the complexity of event systems away using coroutines. You get the best of
37
Criticism: Flash sucks, use something else.
38
--------------------------------
40
JSSockets work, and they're reliable. When WebSockets is established and in at
41
least 2 browsers I'll add that as well. Mongrel2 works with long polling but
42
it's not that big of a deal, it's just how Mongrel2 works. It's only a big
43
deal in web servers that suck.
45
We'll be also releasing a version with the latest "hybi" implementation of
46
WebSockets because they don't suck.
48
Criticism: It needs to serve files.
49
------------------------
51
It does serve files, and since obviously that's the first vanity metric
52
everyone uses, it will serve them fast. It's just Mongrel2 will favor
53
*language agnostic* applications over simple file serving. Actually, I'm
54
not sure why people thought it wouldn't.
57
Criticism: People hate SQL and won't want to use it to configure Mongrel2.
58
--------------------------------------------------------------
60
They don't use SQL, they use a tool called *m2sh* or use any programming language
61
they want with any database they want, even flat files.
64
Criticism: SQLite3 is not Diff/Git friendly so I can't use it.
65
--------------------------------------------------
67
The default *m2sh* command uses a config file, so diff away. If you want to
68
then use only config files you can write a new backend that gets rid of
69
sqlite3, or uses redis. Whatever you want.
71
Criticism: SQLite3 will be hard to change quickly so I'll be stuck in an emergency situation.
74
It's a SQL database, it's all about changes, and you won't use SQL directly,
75
so this is just plain wrong. Not only will you be able to change it
76
quickly, but you'll be able to replicate those changes to all your
77
servers in one shot, roll them back, and lots of other great features.
80
Criticism: It will suck for developers because so much emphasis is on operations.
83
No, it will obviously be for both, it'll just be focused on operations needs
84
before developer needs. You will of course still get your "5 minute quick
85
start" and be able to fire up your application quickly, just like all the
88
Criticism: SQLite cannot handle hierarchical configs like in NGinx.
89
--------------------------------------------------------
91
We have completely smashed this criticism in the face. We have working
92
code that not only can load a full hierarchical config from SQLite, but
93
also load it *from anything else*.