EDAM -What is EDAM trying to do.

Just been working on EDAM ( my event driven architecture product) and wanted to note down and restate the long term goal  (in addition to being a great eventing system).

The goal of EDAM is for people to be able to quickly add programs to the enterprise and to provide a fast event driven service to make this happen . Note i avoided the term framework  as i want this to be usable with no dll linked though we will provide one later to make it even easier.

Remember when we used UNIX commands such as

cat file* | tr -cs '[A-Z][a-z]' '\012' | sort | uniq -c | sort -nr | more

these are incredibly powerful for experienced users and i wanted something similar so you could write enterprise applications and redirect them FAST. 

What i want to do is something like

string  ProcessOrder(Order order) { return order.ToXml())   <OrderService.NewOrderEvent("/orders/order[Customer=xyz]"   > LogEvent(Cat = "Check For Orders from customer xyz" , result; 
 

string  ProcessOrder(Order order) { if ( order.Amount> 1000000) return order.ToXml(); else return null; )   <[OrderService].NewOrderEvent("/orders/order[Customer=xyz]"   > [LogService].Log(Cat = "Check For Big Orders from customer xyz" , result;  > [EmailService].Email(result , "LargeOrder receviec" ,"person who wanted to know"@nobody.com


Basically take the input from a specified event and send it to a dynamically  service. The code would be compiled and loaded into a DB , a dynamic host would automatically load this service and keep it running, 

With powershell ( and UNIX) adminstrators have been using this power for a long time  ( more for reviewing data then events though )  extending it to business events is something else.  It could lead to much quicker small applications being developed , the above example would normally require an application to be written but with some Enterprise infrastructure things could be written really quickly,  This is not really posisble with tradition systems as DB access is normally tightly controlled ( for good reason) and there are no events to trigger things and polling would be inefficient . Note EDA does need protection against a loop

This would be bad.

Order ProcessOrder(Order order) { return order)   <OrderService.NewOrderEvent("/orders/order[Customer=xyz]"   > OrderService.AddOrder(result);

Filter and Replace

In many cases i thought the flexability of EDA can be very usefull in critical systems such as defence ,finance markets etc  , remember  in the first gulf war the Ewacs ( control planes for the whole air war)  shut down because they were overload. They had people look at the bugs and uploaded a new version the next day ,but this sort of thing can cost the lives of many people .

Even if it is some sort of fundamental problem like the hardware cant handle the load ,with EDA i could have build a simple service that subscribed to requests from the first service and have all the systems point to the new service.   This service would consist entirely of an xpath expression which would eliminate excess data by distance or some other dependency.

So we need to change the current event to move to a different port and put a new service which filters events to a new port.
 
Filter  and Extend

Similarly to the  above if you had extra computers and were overloaded you could add more with no impact on the system just some reconfiguration
Print | posted on Sunday, April 05, 2009 5:16 PM

Feedback

No comments posted yet.
Title  
Name
Email (never displayed)
Url
Comments   
Please add 8 and 6 and type the answer here: