[PEAK] Re: Proposal for another Wiki "tutorial"

John Landahl john at landahl.org
Fri Jul 16 17:27:16 EDT 2004

On Wednesday 14 July 2004 01:59 pm, Phillip J. Eby wrote:
> A few design comments...  hope you don't mind.
> If you are going to develop a framework like this with PEAK, the place to
> start is with "enduring abstractions".  That is, things that will always be
> a part of the application.  Or, to put it another way, what is the
> application's "domain"?

Your ability to separate a problem into clear and distinct abstractions never 
ceases to amaze and impress.  :)

> Now, it may be that I have just designed something more like John Landahl
> wants than what you want.

It's very much what I had in mind.  I think I'll start working on some code to 
test out some of the ideas, and will check it into peakplace when there's 
something worth mentioning.

I'm thinking of using an events.Task for each test runner (e.g. test HTTP 
connectivity for system abc.xyz.com every 2 minutes), which would allow 
peak.events to do all the scheduling.  For ICMP pings it might make sense to 
have each ping request go into a queue so they can be processed periodically 
en mass through an external call to fping.

[Actually, it occurred to me that the perfect language/platform for this tool 
would be Erlang/OTP, for a number of reasons: 1) intrisic, highly efficient 
concurrency; 2) its hierarchical process supervision model can be used to 
ensure that tests are always running correctly; 3) built-in distributed 
programming support makes it simple to add multiple monitoring servers for 
load distribution and redundancy; 4) its built-in OODBMS-like database would 
be a good fit, and requires no ORM layer (downside: no SQL access to data); 
5) high uptime and fault tolerance capabilities (e.g. can update application 
code without restarting it, built-in support for application 
failover/migration).  This would be a fun project, too, and it would be quite 
interesting to see both implementations.]

More information about the PEAK mailing list