Re: CRUD application backed only by immutable facts

2012-06-06 Thread 江海龙
I've been concerning this problem for a few months. The "transaction logs" is actually the history events of an entity. With an initial state is offer, the current state of an entity can be calculated with the help of history events. So if you want to know a property of an entity currently, these

Re: CRUD application backed only by immutable facts

2012-06-06 Thread Angel Java Lopez
Yes, I thought the same... Now, encouraged by Dave message ;-) some links: http://martinfowler.com/eaaDev/EventSourcing.html Dave mentioned CQRS, some post about Events, Event Sourcing AND CQRS: http://thinkbeforecoding.com/tag/CQRS CQRS (Command Query Responsibility Separation) is a big topic, po

Re: CRUD application backed only by immutable facts

2012-06-06 Thread Dave Sann
This sounds a lot like Event Sourcing to me. (often coupled with CQRS). Which, I think, is similar to what datomic is doing, where: - datom => event - transactor => event store - peer => query model There are a number of presentations, blogs available on this if you haven't seen

Re: CRUD application backed only by immutable facts

2012-06-05 Thread Kevin Lynagh
Jonas, Definitely inspired by the ideas in Datomic. My question was partially: "how can I implement the core immutability semantics of Datomic in plain Clojure?". (Say, hypothetically, that I need a Clojure datastore with flexible schema and immutability semantics but cannot actually use Datomic f

Re: CRUD application backed only by immutable facts

2012-06-05 Thread nicolas.o...@gmail.com
It is not totally clear in your post how you want to keep the data? Is it in memory (with a transactional log somewhere)? If it is the case, you can do better than reducing the whole data set when executing a query: you can keep a cache of query results, or indexed data and maintain it, while still

Re: CRUD application backed only by immutable facts

2012-06-04 Thread Jonas
On Tuesday, June 5, 2012 3:59:39 AM UTC+3, Kevin Lynagh wrote: > > Has anyone seen or implemented a CRUD application in Clojure using a > database of immutable facts? > > For instance, a traditional database table supporting a todo-list > application has columns > > user_id, task_id, task

CRUD application backed only by immutable facts

2012-06-04 Thread Kevin Lynagh
Has anyone seen or implemented a CRUD application in Clojure using a database of immutable facts? For instance, a traditional database table supporting a todo-list application has columns user_id, task_id, task_description, is_done A new row is created when a user adds a task. Then that row