Comment on Review

InterSystems Cache

(14)

4.2 out of 5 stars

InterSystems Caché® is an advanced database management system and rapid application development environment. With Caché, you’ll make breakthroughs in processing and analyzing complex Big Data, and developing Web and mobile applications.

What do you like best?

Caché is a comprehensive platform that is much more than just a database.

At its core, Caché is a key value hierarchical database that has compact storage, excellent memory caching, fast reads and writes, optimised index traversing, all underpinned with ACID transactions.

A powerful feature of Caché is having unfettered access to this key value storage. It allows developers to come up with innovative solutions to expensive data operations without always having to fit square data pegs into round relational holes.

Caché has a core processing language that compiles down to efficient runtime C code. The higher level language called COS is an object oriented language that is a little unusual at first sight, but easy to learn, and very productive to work with.

Caché has a built in object persistence layer which acts like an ORM. It's not an ORM par se, and does not suffer form the leaky abstractions and complexities that often plague an external ORM. Persistent objects are compiled down into relational like tables, and can be queried using standard SQL. From an ODBC / JDBC perspective, Caché looks and feels like and mainstream relational database.

Being able to store data as objects, tables and/or key value stores makes Caché a unique solution, enabling developers to pick the right storage for the right job, often enabling code driven solutions that could never be achieved by a single database without scalability nightmares.

Caché has a comprehensive set of internal libraries. This includes a great deal of interoperability to connect to and from external technologies. It includes tight bindings for Java and C# and several other programming languages. It also has very strong support for TCP, HTTP, FTP, Mail, SOAP and much more.

One testament to Caché is that Ensemble, a successful Integration engine, is built entirely on top of Caché using mainly its core libraries.

Caché has a built in web gateway with large scale concurrency. Web applications can be developed in a variety of ways. This includes a traditional web page technology called CSP, or with its proprietary web platform called Zen. For a less opinionated approach, applications can be built as pure object solutions, or as a RESTfull back end service.

Caché is not without its peccadilloes and the odd love/hate feature, but then does any technology?

For me, its not the individual parts, be them perfect or imperfect, but its the sum of all these parts that makes it an exceptional platform to work and deploy on.

It is a platform that you have to learn to love at first. It can be easy to install and reasonably quick to figure out, but there will be a few hurdles along the way as you find the best ways to do and not to do certain things. It helps to have an experienced developer around to get the best out of the platform and realise its full potential.

Once you deploy your first greenfield project you will easily get hooked.

In general you will write much less boiler plate code than other stacks. Less code always means less bugs and lower cost of development. Tooling is not perfect, but there are some cool features such as built in code generators that really help churn out generic framework code.

From experience, Caché has been the most reliable database that I have worked on. I've had instances that have been up for years without even the smallest glitch. Even when it does come to an abrupt halt, it typically recovers automatically, even repairing in-flight transactions. Mirroring is simple to set up and very fast to fail over, users rarely even notice. In general, Caché does not need a full time DBA, Caché developers often pick up this role because it has minimal overheads.

On the whole, I feel much more productive with Caché, compared to mixed stack technologies. I always feel confident that my applications will scale and I sleep easy about my deployments.

What do you dislike?

The COS language is a little imperfect. It could be modernised to keep up with other languages. It could also do with (optional) strong type support, but not everyone who uses Caché will agree with me on this. However, COS is still a solid, optimised language that will deliver all of your needs.

I think the point to be made here is that COS is not a language that will necessarily attract hardcore Java programmers or hipsters into learning COS. Developers with a fresh mind or have a proven record to work outside of a single stack are much more likely to stay for the long run.

Tooling can feel a little underwhelming at times. Intersystems have been making advancements in this area with the release of a new IDE called Atelier. It's too early to say if this is a step forwards or a step sideways, time will tell. That said, good old studio has been a dependable editor all these years and never gets in the way.

My biggest and only real gripe is with Zen. It combines concerns and makes client and server code a bit too tangled up. I've never really used it so can't really bemoan it too much. I just know that life is much easier if you pick a good client side MVC, keep JavaScript away from COS, and use Caché as a back end service.

There are other things that I could pick up on, but they seem trivial, and as I have said, its not the individual parts of Caché that make it great, its the sum of all its parts.

Recommendations to others considering the product

Go for it, you will not have any regrets.

What business problems are you solving with the product? What benefits have you realized?

Day to day programming requirements within the healthcare industry. The need to produce lots of solutions quickly, on time and 100% reliable. Large scale messaging and systems integration between large numbers of hospital systems. Also large scale patient databases that need to be fast.

Sign in to G2 Crowd to see what your connections have to say about InterSystems Cache

What do you like best?

Caché is very robust, it will not go down easily. Once installed, there is practically no maintenance needed. Customers using it don't need a DBA. Caché is open the outside world : you can use webservices, REST, xDBC and lots more to connect to other platforms.

What do you dislike?

There is not much to dislike, maybe that other people that don't know it always try to question it. You always have to defend Caché because it is not well known compared to the competition.

Recommendations to others considering the product

Great support, small community but eager to help

What business problems are you solving with the product? What benefits have you realized?

I work for small and mid-sized companies. I write applications that span the whole business process : from order entry, stock, invoicing, accountancy, e-commerce. A few customer have production plants where we do the resource planning.

What do you like best?

Adapting a specific HL7 messaging from a hospital or clinic has always been a big problem. Due to the versatility of the clients, great efforts had to be made in the programming to adapt communications to the different departments or clinics so that they could correctly connect the requests.

With Ensemble, we can use this messaging comfortably, using a single language that adapts to all formats, with the common methods necessary for communication between departments.

It is without a doubt, the definitive integration platform.

Connectivity with SQL, FTP, Email, Files, etc ... does not waste time in creating new routines for this function and focus all the effort on the business logic.

What do you dislike?

The large number of messages stored for any request, the database increases exponentially when there is a large amount of request. The purging of data has to be adjusted to balance the data saved and the capacity of the servers.

What business problems are you solving with the product? What benefits have you realized?

Link different laboratories, each with its own messaging system and its own form of communication in a single way to communicate with clinics.

What do you like best?

I think that with this software you are be able to process heavy information keeping reliability in the use of data. It gives you access to the data in many possible ways. In addition the software has an integrated dictionary acceding simultaneously to the same information.

What do you dislike?

I like it, I think it has come to solve many problems with the management of data in business,.

Recommendations to others considering the product

I will recommend because we can manage safety the information, also it has a script language.

What business problems are you solving with the product? What benefits have you realized?

I solved the big problem which means to carry millions and millions of data in our organization, also it has brought a great benefits which is to keep in order al the possible information.

What do you like best?

It is all in one database, in the most cases, you can create a business application which will work only in Caché. This application may have a text user interface, or web-interface. Different ways to access the data, helps developers customize their code, and improve the performance of their application.

What do you dislike?

Backup process is not good yet, and I don't see any progress here. Scalability is another little pain. When some other databases offer a quite easy way to scale database storage, InterSystems Caché needs lots of manual work, not for admins, even for developers too.

What business problems are you solving with the product? What benefits have you realized?

What do you like best?

I am by no means an expert, but I think it's interesting how Cache is both multidimensional and relational. Though I can't aptly verbalize what impresses me about Cache, after going through training and learning a bit about it I have been impressed.

What do you dislike?

It's advantages are also its disadvantages. For someone who can't/doesn't focus on this full time it is difficult to master. Due to its low popularity, it is also difficult to find support.

What business problems are you solving with the product? What benefits have you realized?

Being in the health IT business, Intersystems and Cache are just par for the course. I can't say what "benefits I have realized" that may not have come with other technologies.

What do you like best?

It seems to perform pretty well based on negligible system resource impact when running large aggregate & join queries. Some queries do take longer than I would expect from a lesser powered SQL server, but I think part of it is process prioritization and limits...because I have yet to break it (make it unresponsive or block other processes) running dumb queries. It also supports native encryption off the shelf, which is now pretty common but for when the version we run was release, there were some major DB products that didn't. The database shadowing and mirroring features built in are reliable and fairly simple to setup, even thought the steps are a little barbaric (shut down database, copy files to target manually to do initial snapshot)

What do you dislike?

The backup process is rudimentary. We have to create scripts to execute commands to freeze and copy files, then thaw (freeze/thaw is a quiesce). Error message parsing from ODBC connection is sometimes messy. There is an ancient interface required to perform some release tasks.

Recommendations to others considering the product

If you really need to use an object database for your applications, it's worth a look.

What business problems are you solving with the product? What benefits have you realized?

This runs a commercial software application that runs our business. It is built on top of Cache databases. We have customized and extended the initial software with relative ease. The licensing model is simple and fair.

Learning about InterSystems Cache?

* We monitor all InterSystems Cache reviews to prevent fraudulent reviews and keep review quality high. We do not post reviews by company employees or direct competitors. Validated reviews require the user to submit a screenshot of the product containing their user ID, in order to verify a user is an actual user of the product.