eligosource / eventsourced

A library for building reliable, scalable and distributed event-sourced applications in Scala
Apache License 2.0
828 stars 98 forks source link

mongoDB casbah based Journal added. #70

Closed ironfish closed 11 years ago

ironfish commented 11 years ago

Martin, you'll need an instance of mongoDB running for the tests.

krasserm commented 11 years ago

Hi Duncan, thanks a lot for your contribution, this is a very good starting point. Just left some comments in your initial commit.

I must admit that the JournalSpec does not provide (yet) the coverage it should. To get a good feeling whether your journal is implemented correctly, try to run it with the tests in eventsourced-core-test. As demonstrated with LevelDB this can be done with a journal-specific test support trait hooked into the test fixture used by these tests. You need to recompile after changing it to MongodbSupport (or similar). A setup that runs automatically picks all existing journal implementations is planned.

Furthermore, for the HBase journal I pushed today, I configured the tests to run as integration tests so that they're only executed with sbt it:test but not with sbt test (see sbt docu for details). This was necessary because I still cannot get an HBase minicluster running on Travid CI. Maybe that's also a reasonable setting for the MongoDB journal tests as well. WDYT?

ironfish commented 11 years ago

Martin,

I've tested against eventsourced-core-test by creating the following:

In order to run the EventsourcingSpec.scala you will need to make the following changes as per your suggestion and recompile:

The build is a little slow (24 seconds) as opposed to (6 seconds) because it has to create the embedded mongo instance for each test. All tests pass - Yahoo!

Finally, If you prefer, I will move the MongodbJournalSpec.scala to IT but it runs pretty fast so I'm not sure its needed. Your Thoughts?

krasserm commented 11 years ago

Great, I'll give it a try tomorrow morning. Regarding the MongodbJournalSpec I think it's ok the leave it as it is. We can still move it later when needed.

krasserm commented 11 years ago

Awesome work Duncan, really like it. Just merged and pushed to master. Thanks a lot for your valuable contributions.

Cheers, Martin

krasserm commented 11 years ago

Duncan, would you mind adding some usage documentation for the new MongoDB journal? I just created and pushed a template for it and linked it from the main documentation file.

Thanks, Martin

ironfish commented 11 years ago

Will do.

..


{ name     : "Duncan DeVore",   company  : "Viridity Energy, Inc.",   phone    : "+1.267.227.1992",   location : "Philadelphia, PA",   twitter  : ["@ironfish", "@viridityenergy"] } On March 18, 2013 at 4:08:53 AM, Duncan DeVore wrote: Duncan, would you mind adding some usage documentation for the new MongoDB journal? I just created and pushed a template for it and linked it from the main documentation file. Thanks,
Martin

—
Reply to this email directly or view it on GitHub.

The preceding email message may contain confidential information of Viridity Energy, Inc. It is not intended for transmission to, or receipt by, any unauthorized persons. If you have received this message in error, please (i) do not read it, (ii) reply to the sender that you received the message in error, and (iii) erase or destroy the message.

neowulf commented 10 years ago

Since, MongoDB journal has passed the existing tests for LevelDB, does this mean MongoDB journal can be used in Production? If not, could you please elaborate? Thanks.

ironfish commented 10 years ago

Hi neowulf33,

Yes the MongoDB journals are currently production ready. We have been using them in our project for about 5 months now. That being said I expect to release the Akka-Persistence MongoDB Journal plugin sometime within the next 4 weeks but that will be in “experimental” until Akka-Persistence is officially released.

Cheers,

Duncan

On Nov 11, 2013, at 4:18 PM, neowulf33 notifications@github.com wrote:

Since, MongoDB journal has passed the existing tests for LevelDB, does this mean MongoDB journal can be used in Production? If not, could you please elaborate? Thanks.

— Reply to this email directly or view it on GitHub.