Hi Adrian,
the answer is more off-topic than the question :) but have a look to Spagic 
(I'm a member of the developers' team), Mule ESB, Petals ESB or Talend ESB. 
You may already know Talend as an ETL solution. You'll find tools to 
define, configure and run instances of services or processes. Monitong 
application with re-start / re-run facilities. Connectors for services / 
processes integration.

In a ESB scenario developers will design simple processes with a quartz or 
file polling connector followed by a script / custom component designed to 
accomplist the batch task. 

Custom components can be written in clojure if you reify the required 
interface. The only cavevat is the AOT compilation.

Some other ideas are below, along your problem statement.

Cheers,
Luca


>    - Be controlled by artifacts developers control
>       - Probably be github friendly
>    
>  
Put service deployment directory and estensions / plugins directory under 
version control and copy them as a part of the deployment process. An ESB 
can be deployed like a simple webapp.

>
>    - 
>       - Provide a direct relationship between an application and its tasks
>    
>
Choose meaningful service names. Deploy a local ESB in the same AS of your 
application and use an in-memory invoker / connector. 

>
>    - Support separate sandbox, staging and production environments
>
>
 Use different ESB instances.

>
>    - Be scalable
>
>
Single task scalability is up to your code.

>
>    - Be distributed - jobs for application X can run on the same host as 
>    application X or on a different host or cluster as needed
>
>
Sevices / processes can be run on every ESB instance. Use in-memory invoker 
/ connector or soap invoker / connector.

>
>    - Be secure
>
>
Use https for remote connection. Use sftp for file transfer. 

>
>    - Be easy to administer
>       - Job progress and status is visible
>    
>
Service progress notification is up to your code and not a monitor console 
feature. Process running step is available. 

>
>    - 
>       - Alert when a job fails
>    
>
Use a mail connector to alert on job fails

>
>    - 
>       - Easy to re-run a job
>    
>
Restart / rerun through monitoring console. 

>
>    - 
>       - Easy to spin up new hosts and/or move all processing to a 
>       different host
>    
>
Deploy a new instance with the same configuration. No running service can 
be moved. Running processes may be moved. It depends on workflow engine 
implementation details.

>
>    - 
>       - Provide a standard way of organising assets like files and 
>       configs across all our applications
>    
>  
(Not sure what you mean.)

>
>    - Comply with our hybrid infrastructure (stuff runs internally and in 
>    the cloud)
>       - Data can move internal -> cloud
>    
>  
Is it an ETL task?

>
>    - 
>       - Data can move cloud -> internal
>    
>
Same as before 

>
>    - 
>       - Data can be processed entirely within a host
>    
>  
That's so

>
>    - Support different ways of triggering a job
>       - Scheduled tasks
>    
>
Use a quartz input connector 

>
>    - 
>       - Run when file x arrives
>    
>
Use a file poller input connector 

>
>    - 
>       - Run job y after job x completes
>    
>  
Use an output connector to trigger the next job start or design a process 
with jobs in a sequence.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to