The curtains are pulled: Alfresco launches Activiti

 

After some weeks of silence, we can now finally pull the curtains … and reveal Activiti to the world!

Activiti is a super-fast and rock-solid BPM and workflow engine that natively runs BPMN 2.0. It’s completely open-source (Apache licence) and embeddable in any Java environment.

Tom and I joined Alfresco about two months ago, and we’ve kept ourselves quite busy. Bundled with this announcement is the first alpha release of Activiti. Go and play with it while it’s hot!

Activiti is all about what made jBPM great, and taking giant leaps from there. Tom nicely summarizes it in his blogpost. A lot more information can be found on the Activiti website.

Official Alfresco press release: click here.

Regards,

Joram

15 Comments

  1. erics May 17, 2010

    Good luck my friend!

  2. Joram Barrez May 17, 2010

    Thanks Eric, much appreciated!

  3. -Els- May 17, 2010

    When I’m old & grey (ehm… older and showing more grey 🙂 I’ll tell the world: once, he sat in my couch and drank a 7 year old Havana Club rum with his lovely pregnant wife and some other colleagues. Yes, I knew him personally!
    Chique dingen, man!

  4. Joram Barrez May 17, 2010

    Thanks Els, much appreciated!

    And also thanks for teaching me how a real Cuban Rum taste like 🙂

  5. Paris Apostolopoulos May 18, 2010

    good luck – I am sure it is going to be a success

  6. bayazet December 18, 2012

    Activiti is crap. It’s not fast because it stores its data in DB. So it’s as fast as your DB is and if your DB is busy then you out of luck. So please don’t mislead anyone on this matter. We have tons of Activiti related exceptions on daily basis. It just complicated things and made our software more fragile and harder to support.

  7. Joram Barrez December 18, 2012

    @bayazet: I’m really sad to hear that. We do take pride in making the life of many, many developers easier. So even if the tone of your comment is a tad inappropriate, I’d still like to reply here.

    ” It’s not fast because it stores its data in DB. So it’s as fast as your DB is and if your DB is busy then you out of luck.”

    That’s correct. But since when is DB == slow?
    If you don’t believe my benchmark (posted on this blog), take a look at the case studies from our Activiti Day in Berlin last month. Many companies are using Activiti in high-demand, high-availability scenario’s. People are using Activiti to handle several thousands of processes per day.

    Of course, your database is as fast as you make it go. A good DBA goes a long way there.

    “So please don’t mislead anyone on this matter.”

    We’ve never have. And if we did, could you point us to where we do that, so we can rectify it?
    As far as I can see, the user guide (http://activiti.org/userguide/index.html) clearly states using a database multiple times.

    “We have tons of Activiti related exceptions on daily basis.”

    What exceptions do you see? As everybody in the Activiti community, feel free to post your problems in the Activiti Forum (http://forums.activiti.org/en/viewforum.php?f=3) and we (and others, of course) will try to help at our best effort.

    “It just complicated things and made our software more fragile and harder to support.”

    That’s really sad to hear. But without more details about your use case and Activiti usage it’s hard to give any remarks on that.

  8. bayazet December 18, 2012

    Joram, I understand you put lots of effort into your baby and I am sorry for calling it “crap”. But not calling it that word doesn’t stop me from feeling that way anyway. So let say in very polite terms – I don’t really see any usefulness of BPM concept. In real world for process management crontab or autosys is quite sufficient. BPM comes rather from the world of marketing and corporate BS where key words and sound of your own voice uttering them means more than specific action. In my view, it’s a toy for managers to fill their day, to look important doing something, clicking on pretty icons of some kind of eye candy such as activiti modeler etc. Also after looking at your user guide… What kind of lightweight we are talking about? Define “lightweight”, please. Does it mean your codebase is small, or it has minimum dependancies or none, or it doesn’t take much resources? The only fact that it uses spring cancels “ligthweight”. Look at the listing below. It shows bare minimum of spring jars that I am forced to use to run our company’s sofware. With spring involved even simple “hello world” weights 4+ megabytes.

    01/18/2011 15:40 2,949,500 spring-2.5.6.jar
    01/18/2011 15:40 488,282 spring-beans-2.5.6.jar
    01/18/2011 15:40 476,940 spring-context-2.5.6.jar
    01/18/2011 15:40 285,491 spring-core-2.5.6.jar
    4 File(s) 4,200,213 bytes

    Total size of jar’s in your distributable is 44Mb on my hard drive. And it’s only zipped executable byte code plus constants. Wait until it gets expanded and surrounded by metadata. You call that lightweight? From that prospective I can call iText lightweight. Maybe it’s lightweight in a sense that it has little footprint? Addition of activiti to our application significantly bloated the code. Simple webapp that uses your product now weights 60mb and all it has to do is to display 4 pages. But now it includes activiti plus all dependancies such as spring jars. JVM has to load all those classes into memory and we run our application with -Xmx1024m parameter because otherwise it gives us OutofMemoryException. Before we added Activiti out of memory did not happen. Besides the web application it also leaves its footprint on DB side. This is a list of tables it created in our database.

    ACT_CY_COMMENT
    ACT_CY_COMMENT
    ACT_CY_CONFIG
    ACT_CY_CONFIG
    ACT_CY_CONN_CONFIG
    ACT_CY_CONN_CONFIG
    ACT_CY_LINK
    ACT_CY_LINK
    ACT_CY_PEOPLE_LINK
    ACT_CY_PEOPLE_LINK
    ACT_CY_TAG
    ACT_CY_TAG
    ACT_GE_BYTEARRAY
    ACT_GE_BYTEARRAY
    ACT_GE_PROPERTY
    ACT_GE_PROPERTY
    ACT_HI_ACTINST
    ACT_HI_ACTINST
    ACT_HI_ATTACHMENT
    ACT_HI_ATTACHMENT
    ACT_HI_COMMENT
    ACT_HI_COMMENT
    ACT_HI_DETAIL
    ACT_HI_DETAIL
    ACT_HI_PROCINST
    ACT_HI_PROCINST
    ACT_HI_TASKINST
    ACT_HI_TASKINST
    ACT_ID_GROUP
    ACT_ID_GROUP
    ACT_ID_INFO
    ACT_ID_INFO
    ACT_ID_MEMBERSHIP
    ACT_ID_MEMBERSHIP
    ACT_ID_USER
    ACT_ID_USER
    ACT_RE_DEPLOYMENT
    ACT_RE_DEPLOYMENT
    ACT_RE_PROCDEF
    ACT_RE_PROCDEF
    ACT_RU_EXECUTION
    ACT_RU_EXECUTION
    ACT_RU_IDENTITYLINK
    ACT_RU_IDENTITYLINK
    ACT_RU_JOB
    ACT_RU_JOB
    ACT_RU_TASK
    ACT_RU_TASK
    ACT_RU_VARIABLE
    ACT_RU_VARIABLE

    It hardly qualifies for small footprint.

    Now, I see you used spring… Many times when I ask developers why they use spring + annotations in their project I hear mostly 2 things: “it’s industry standard”, “it’s the best practice”. But so far everyone I asked failed to show me the actual industry standard that mandates spring use. Regarding best practice – it’s based on perception, it’s more emotional choice then one based on facts. I avoid spring. It might be good for debugging when it helps to create so called “pointcuts” or method interceptors but that’s just about it. For dependancy injection in 95% of cases operator “new” suffices. For the rest – use reflection for lazy initialization of your code at the run time. No need to drag megabytes of foreign code into your application. Keep it lean, clear and nimble.
    Often I hear this idiotic excuse: “what do you care about disk space? or memory? it’s cheap. we will add bigger disk and more memory!”

    Really?

  9. Joram Barrez December 19, 2012

    @bayazet: Okay, I’m going to respond one more time. It’s clear that our opinions differ and that we won’t be become friends. No problem, everybody is entitled to their opinion. However, for people that accidentally stumble upon this (almost) three year old thread, I’d like to comment on some of the things you are writing.

    ” I don’t really see any usefulness of BPM concept.”

    Okay, that is your personal opinion. But to me, it is nothing more than that.
    There is a whole industry worth billons around BPM. Are all these people wrong? Are all these people swallowing the ‘corporate BS’? Before Activiti and jBPM, I was a developer using jBPM in the field. The main problem that BPM solves, is the IT-business communication. I’ve been part of many succesful BPM implementations, where both IT and business were extremely satisfied with the delivered results. Both in time and money-wise. It is certainly not to ‘give some manager some shiny tool’. If that’s the case in your company, then I would seriously think about what you are doing there.

    “What kind of lightweight we are talking about? ”

    We’ve covered this in many of our materials. First of all, in comparison with our competitors which have black box servers that needs GB’s of memory and a cluster to run. Lightweight in the fact we’re just a jar, easily included in your Java project. Lightweight in our memory footprint and cpu cycles. You mention ‘crontab’ and ‘autosys’. Those are not doing BPM. Those are automation tools. Sure Activiti can do that, but that’s not what you should be using it for. Activiti and workflow/BPM is about human interaction more than anything else. Use the right tool for the job.

    “JVM has to load all those classes into memory and we run our application with -Xmx1024m parameter because otherwise it gives us OutofMemoryException.”

    If you need 1Gb to run Activiti, there is definitely something wrong with your setup.

    “The only fact that it uses spring cancels “ligthweight”.”

    I’m assuming you never had to develop using Java ‘in the old days’? EJB’s before EJB version 3? Java has come a long way, and Spring has certainly paved the way to make Java lightweight.

    Sure, if you compare Java with Ruby on Rails you can argue about lightweight. But even if I do like RoR a lot (I do!), there is simply no market here where I live to build a viable business with it. At the end of the day, principles are nice. But bread on the table is better.

    “For dependancy injection in 95% of cases operator “new” suffices. For the rest – use reflection for lazy initialization of your code at the run time. ”

    Sorry, but I strongly disagree with such statements. Sure, it suffices when you are doing one-mans-projects. But for any project of a reasonable size, forget it.

    “Often I hear this idiotic excuse: “what do you care about disk space? or memory? it’s cheap. we will add bigger disk and more memory!””

    That is why we try with Activiti to keep our footprint as low as possible. But I actually agree with the statement you write here. I do think it’s cheaper to add more memory and disk, then to have a developer custom code a solution that is a wee bit smaller and faster. In any project, the development costs outweigh far the cost to run it. Even if you look at it in the long term.

    And really the last thing I want to say about this: Activiti is open source. There is no hidden secrets. If you want to use it, fine. If you don’t think it’s a fit for your requirements, so be it.

    But the proof of the pudding is in the eating. And if you look at all the places where Activiti is used today, wide across many different environments by many, many developers … Good Open source software is measurable by the number of people using it every day. And I think Activiti scores quite high on that scale.

    I hope we can now close this discussion, concluding that we agree to disagree 😉

  10. bayazet December 19, 2012

    Sure. We can close this discussion. I have more to say, but this is your forum, so be it.

  11. Joram Barrez December 19, 2012

    @ bayazet: Feel free to post anything in the Activiti Forum: http://forums.activiti.org/en/viewforum.php?f=3.
    It has a wider audience and more people will be able to join the discussion anyway, so it is a far better place for these kind of discussions.

  12. bayazet December 20, 2012

    Joram,

    With all due respect, you’ve gotta be kidding me, man. Why would I post on the forum that is 100% your fans? Do you imagine me saying to them “I know better and you all are shmucks because you are using spring and activiti” ? 🙂 I might be controvercial, but I am not stupid. Besides, if I have to express my opinion why would I express it to the victims of the problem rather than to the root of the problem? On more realistic note… Statements that “everyone is using it” or “it got wide acceptance” don’t prove that what is accepted is good for their mental health 🙂 Humankind is notoriously known for falling for delusions in masses. Middle Age Inquisition and Hitler’s Germany of 40’s are good examples. I am not sure if you know who Jan Hus was. Here is the link just in case – http://en.wikipedia.org/wiki/Jan_Hus .
    It’s him who coined the frase “Sancta Simplicitas!” when old woman put firewood in the fire when he was burned at the stake because he was trying to save this kind of old women. The point I am trying to make is amount of followers does not always mean that you invented something smart, good and helpful. Human folly has no limits. Unfortunately oftentimes much more inferior things get better acceptance simply because the message about them delivered to the wider audience. I mean marketing. For example, I think Erlang is much better than Java and has huge potential while keeping much smaller footprint. Besides it existed since mid 80-s, it’s mature and reliable sofware and very good functional language. Unfortunately, it’s niche is much smaller than java’s. I attribute it entirely to marketing and proprietary policies of Ericson. Several high performance databases written in Erland such as CouchDB and Riak. Instagram that used CouchDB proved its reliability and good performance.
    So the sole fact that people are “excited” using spring et al. is not a fact that it’s good. It’s just tells me that crowd was indoctrinated by hype. That’s all.

  13. Joram Barrez December 20, 2012

    Look, I really don’t want to waste any more energy in replying to you.

    What is it you trying to accomplish? Just let me know your opinion on Activiti? Convince me? I’m *not* forcing you into using it. Hell, I don’t even care if you are using it.

    If you feel uncomfortable posting on the forums where, believe me or not, many people do have a critical mind (these are not drones or stupid people. These are educated, smart people with insight in how to solve real-life business problems), feel free to post anywhere else on the internet your opinion. I’m not going to stop it. This is open source, with open opinions. I actually believe that getting criticism like yours is only a sign of Activiti becoming more and more popular 😉

    And please do not compare software frameworks with things like the inquisition and the holocaust. That is just plain morally wrong. We’re talking here about freaking code. Zeroes and ones that solve problems for people everyday.

    Again, I do hope we can close this discussion now. I’m only replying here for the sake of people stumbling on this post. I don’t intend of arguing anymore further with people who believe the whole world is wrong. It must be lonely up there, above all the ‘normal’ people.

  14. bayazet December 20, 2012

    Joram,

    I guess you misunderstood my intentions. I am not trying to defy you or to prove you wrong or to aggravate you. I am simply expressing my opinion on the matter. I know you would disagree, but I just wanted to give you some kind of alternative thought, different way of looking at things. I mean if you want the whole world being painted in “java” – fine! I thought you would not be irked by criticism to such extend. No problem. There is no need to respond to this post, unless you feel like it.

  15. lilith January 18, 2013

    bayazet, you are kind of radical in your judgement: Activiti might be put to a good use. However I agree there could be situations when Activiti is overkill or simply inappropriate. One of those examples could be using activity as a rule engine. There are certain similarities but I would use something else instead.
    Regarding Jan Hus – interesting article. I clearly see your point and it’s a shame that Joram sees it as some reference to Holocaust. I do agree that people are inclined to follow the hype without putting much thought to it. Joram, great software, but in a way I am glad someone criticized it, put some bitter piece in the sea of sweets.
    Too much sweets bad for your dental health.

Leave a Reply

Your email address will not be published. Required fields are marked *