Skip to content

When to use Sirius

Jim edited this page Feb 25, 2014 · 9 revisions

#Conciderations for using Sirius In order to help evaluate the Sirius library for use in your application, we have compiled a list of conciderations that should be helpful in your evaluation.

If you can answer yes to the following questions Sirius may be a good fit for your application: (Answering no to one of more of these questions may indicate that Sirius is not a good fit)

  • Will your application utilize a distributed data store?
  • Will your application requre high performance reads from the datastore?
  • Will your application require key-value storage?
  • Will your application run inside a JVM?
  • Will your application implement in-memory storage?
  • Will your application need a simple interface to the datastore?
  • Will your application perform many reads for each write?
  • Will your application tolerate eventual consistency of the datastore?

If you can answer yes to the following questions Sirius may be a better fit for your application vs. similar libraries: (Each yes answer indicates and even better fit, while a no answer may not indicate anything in particular)

  • Will your application have multiple types of data that need to be stored?
  • Will your application have nodes that may be unavailable for short periods of time?
  • Will your application benefit from having all the data replicated to all the nodes of the cluster?

We are not aware of a good test that will tell you which library is the best for your application in a quick, easy and infallible way. The questions above are meant to be just guidelines. Especially the second set of questions, as they may not be relevant to your application. For example, you are evaluating Sirius for an application that deals with large amounts of homogeneous data (i.e. all the data is the same type of data). Because Sirius can support different types of data, as long as it can be represented as an array of bytes, answering no to that question should not be concidered a negative for evaluating Sirius. Sirius just provides flexibility and functionality you will not be using in your application. Some of the conciderations, on the other hand, are definite indicators that Sirius is not a good fit for the application. For example the inability for your application to tolerate any stale reads, would be a large contra-indication that Sirius is the right tool for your application.