The idea that became Presumo was conceived on the around May 2000. At that
time I had just finished a prototype of a product based on a particular JMS
implementation. It was disappointing to find the prototype consuming an
excessive amount of network bandwidth. The source of the problem was due
to the prototype's reliance on a feature which was poorly designed in the
JMS implementation. Specifically, the product relied on JMS' ability to
filter messages based on the content. However, the JMS implementation did not
apply the filter until it had reached the client. Consequently,
many messages which were not needed by clients were being sent over the
network only to be dropped on arrival. The problem was exacerbated by the
fact that no JMS implementation at the time, and most still do not, preform
server-side content filtering of messages. Management decided not to
re-architect and the product was eventually shipped as a bandwidth hog.
It was amazing to find out the the JMS implementations considered the problem
impossible to remedy. Time and time again it was expressed that performing
content based filtering at the server would cause a CPU bottleneck. After
thinking about the problem for some time, an algorithm/architecture was devised
that seemed to make server side filtering possible for the most common use cases.
Eager to see if the design would work, I set out to write what is now Presumo.
After many late nights and a few weekends, the project was able to pass
messages fall of 2000. Every effort was made to make the system as efficient
as possible, and the results were unbelievable. The core routing engine was
able to process over 10,000 messages per second, while accomplishing the
"impossible" task of server-side content based filtering.
The excitement was short-lived. The prototype was very fast, but it was only
a prototype. Much work was needed to get the code base to a competitive
solution. Furthermore, I lost motivation when faced with the daunting task
of producing an quality enterprise solution by myself. After 6 months
of no significant progress being made on the code base, I decided to open source
the project. Another 4 or 5 months later, November 2001, the first version
was released, and the Presumo project was up and running.