"Datomic is a distributed database designed to enable scalable, flexible and intelligent applications, running on next-generation cloud architectures.
It does this by:
Bringing declarative data manipulation into the application, and the data with it
Getting time, process and perception right
Process (writes) require coordination
Perception (reads) require none
The past doesn't change
Leveraging immutability, and a sound model of state
Datomic has:
ACID Transactions
Joins
A sound data model
A logical query language - Datalog
Thus, Datomic avoids the compromises and losses of many NoSQL solutions. In addition, it offers flexibility and power over the traditional model in supporting:
Hierarchy
Multi-valued attributes
Minimal schema
Reliable operation on unreliable, ephemeral cloud instances
Time
Datomic avoids manual caching and replication, complex configuration, sharding (automatic or manual), logging, locking, latching and disk management of traditional servers."
"Model your domain in the language and style of Domain Driven Design. Implement it using Scala case classes and companion objects. Pass us your subdomain, and we provide the persistence. Persistence concerns, operations and data are abstracted behind an elegant persistence API. We provide you with fully featured repositories for MongoDB and Cassandra. We provide a suite of integration tests to exercise your repositories against a real database, as well as in-memory repositories for other tests."
"In this talk you will learn about a modern way of designing applications that's very different from the traditional approach of building monolithic applications that persist mutable domain objects in a relational database.We will talk about the microservice architecture, it's benefits and drawbacks and how Spring Boot can help. You will learn about implementing business logic using functional, immutable domain models written in Scala. We will describe event sourcing and how it's an extremely useful persistence mechanism for persisting functional domain objects in a microservices architecture."
What is Graphite?
Graphite is a highly scalable real-time graphing system. As a user, you write an application that collects numeric time-series data that you are interested in graphing, and send it to Graphite's processing backend, carbon, which stores the data in Graphite's specialized database. The data can then be visualized through graphite's web interfaces.
Who should use Graphite?
Graphite is actually a bit of a niche application. Specifically, it is designed to handle numeric time-series data. For example, Graphite would be good at graphing stock prices because they are numbers that change over time. However Graphite is a complex system, and if you only have a few hundred distinct things you want to graph (stocks prices in the S&P 500) then Graphite is probably overkill. But if you need to graph a lot of different things (like dozens of performance metrics from thousands of servers) and you don't necessarily know the names of those things in advance (who wants to maintain such huge configuration?) then Graphite is for you.
"In this article, we discuss the three-way relationship between three
such desirable features - fairness, isolation, and throughput (FIT) - and argue that only two out of the
three of them can be achieved simultaneously."
"Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes.
Presto was designed and written from the ground up for interactive analytics and approaches the speed of commercial data warehouses while scaling to the size of organizations like Facebook."
Apache Sqoop is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases. Sqoop successfully graduated from the Incubator in March of 2012 and is now a Top-Level Apache project: More information The Apache Sqoop team is pleased to announce the release of Sqoop 1.4.1-incubating from the Apache Incubator, which is the second incubator release.