The company I worked for before ~ 8 years (a bank) was using Appian for a bunch of its non-core workflows and actually was in the process of using it even more.<p>Appian is a strange beast: It's a BPMS written as a Java web application that has an in-memory kdb (the db of the K programming language which is well-known in HN) for storing all process data.<p>The greatest advantage of Appian as compared to other workflow systems I've used (Activiti, jBPM etc) is that it offers a really complete environment for creating a more or less complete workflow without the need to write code. So you can actually teach non-technical people to do it. I remember we had a couple of Business Analysts that were creating very complex workflows back then. The didn't have any technical knowledge; their background was mostly on economics. Of course, for integration with legacy systems or relational databases or doing some tricky UI you'd still need a developer. But most of the work could be done by a not so tehnical guy which is the holy grail of such systems. Also, it was a really complete system where you could rather easily implement all your workflow needs (workflow design, user tasks, notifications, exceptions, integrations, reporting, authorizations, business rules, subprocessing, parallel execution etc). After some initial configuration you'd rarely need to touch code unless you needed some custom bpm nodes.<p>Appian was also claiming that because it was using the kdb as a database backend it was very fast. I don't have an opinion on this; it wasn't slow but wasn't blazing fast. And also when the kdb size grew too much (we're talking some tens of GBs) it was taking a really long time to start (half an hour or something) and needed the same amount of memory from the server (IIRC we had 64GB back then) because it needed to load the kdbs into memory. Also I remember that we had a constant fear that the kdbs will be compromised somehow (for example if the server rebooted unnormally) and we'll lose data. Or maybe I had that fear; I was never able to "trust" it as I could trust the good-old IBM DB2 database the bank had. Concerning data-loss, we had a bunch of incidents that were related to having configured appian as a cluster; after we switched to a single server it was better. The good thing (or maybe bad because I was never able to learn K) is that it had a complete API in Java so we didn't actually need to touch the kdbs; I remember with awe however when we had a support request where an Appian engineer was using K to actually query the kdb and see the status of our server.<p>In any case, the main drawback of Appian is how expensive it was. I don't remember how much but I remember that the bank had a special agreement to have a low price for Appian (don't exaclty now the details); buying it fully was too expensive even for the bank (!) (especially if it was to be used by all employees since it had a per user fee).<p>Beyond all these, I belive that Appian is a solid product and deserves its success in the enterprise world.