Fork me on GitHub
#datomic
<
2016-08-06
>
fossifoo09:08:25

from googling around i got the impression that datomic is not really fit for use in a microservice environment because of the "process" based licensing. is this still the case? we could really use some ACID properties for our cassandra cluster 😕

fossifoo09:08:15

so far the "solution" has been to implement all the great stuff datomic provides in an ad-hoc manner as is custom, but i'd rather get our customer to maybe license a fairly big installation with about 30 microservice, currently 3 instances each. but paying all of them seperately is clearly insane

atroche09:08:51

do your microservices all need a direct connection to the database?

fossifoo09:08:38

i assume you mean running peers and transactors as seperate services and adding 1-2 hops?

fossifoo09:08:43

i guess for most of them this would probably be okayish, since a memcached installation would probably answer about as fast as the cassandra does now

fossifoo09:08:02

and we honestly don't write that much (don't ask... -_-)

fossifoo09:08:09

so is that actually a "valid" workaround to have your peer as a seperate microservice and talk over the REST api with datomic? that seems like "cheating" the license from the other side

atroche09:08:03

that doesn’t exactly answer your question, but it’s a sign that having peers act as REST APIs isn’t outside what the creators intended

atroche09:08:04

AFAIK cognitect don’t mind you having as many clients as you want talking to your peers (in your example, the microservice(s) with direct connections to datomic)

atroche09:08:19

but definitely can’t speak for them

fossifoo09:08:16

well, i guess we would need to just call/write and ask

atroche09:08:01

but if you already have 30 microservices that talk to a database, it might be a pain to rewrite them to get what they need from other microservices instead

atroche10:08:49

in any case, good luck 🙂

fossifoo10:08:52

well, i really hope i can get this through. cassandra lightweight transactions are a major pain to deal with

fossifoo10:08:30

basically they tell you that you should almost never use them and if, they don't even guarantee that they will be consistent under contention... -_-

fossifoo10:08:54

so you are basically forced to write both a transactor and some "aggregator" anyway or do leader election and such yourself. totally not what i expected from a persistent storage 😕

iwankaramazow12:08:45

A few weeks/months ago someone posted a link to a blogpost here on Slack, that showed how to implement Datomic or a datalog engine from scratch. I don't remember 100% anymore. Does anybody know the link to that blog?

anmonteiro12:08:59

would that be it?

iwankaramazow12:08:25

Yea that was it 😄

iwankaramazow12:08:03

Muchas gracias

marshall12:08:53

@fossifoo: I'd be happy to discuss options and approaches folks use for microservices with Datomic. Shoot me an email (marshall at http://cognitect.com) and we can schedule something.

fossifoo12:08:53

@marshall: thanks. i'll discuss this again internally and get back to you in the next week

marshall12:08:06

Sounds good

fossifoo12:08:34

the weekend is for using datomic for my private projects 😉