Skip to content

Commit d86d659

Browse files
committed
* Updating README after trying out the library
1 parent 8f7ebcd commit d86d659

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ target/
88
/.classpath
99
/.project
1010
/.settings
11+
/.cache

README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,40 @@ This fork was created to work with AWS 1.5, AKKA 2.1, and Play 2.1.
44

55
With this fork you can publish to your local maven repo so it can easily be included in your own projects without waiting on others to setup new releases.
66

7+
## KNOWN ISSUES
8+
9+
Despite the examples you CANNOT convert case classes directly to the AWS msg unless the case class has all Strings as arguments. This means code like
10+
11+
```scala
12+
case class Person(id :String, name: String, email: String)
13+
implicit val personDO = DynamoObject.of3(Person) // make Person dynamo-enabled
14+
15+
if (! TableExists[Person]()) //implicit kicks in to execute operation as blocking
16+
CreateTable[Person](5,5).blockingExecute(dynamo, 1 minute) // overriding implicit timeout
17+
18+
val julian = Person("123", "Julian", "[email protected]")
19+
val saved : Option[Person] = Save(julian) andThen Read[Person](julian.id) // implicit automatically executes and blocks for convenience
20+
assert(saved == Some(julian))
21+
```
22+
23+
may work, but code like this does not due to the Long id value:
24+
25+
```scala
26+
case class Person(id :Long, name: String, email: String)
27+
implicit val personDO = DynamoObject.of3(Person) // make Person dynamo-enabled
28+
29+
if (! TableExists[Person]()) //implicit kicks in to execute operation as blocking
30+
CreateTable[Person](5,5).blockingExecute(dynamo, 1 minute) // overriding implicit timeout
31+
32+
val julian = Person("123", "Julian", "[email protected]")
33+
val saved : Option[Person] = Save(julian) andThen Read[Person](julian.id) // implicit automatically executes and blocks for convenience
34+
assert(saved == Some(julian))
35+
```
36+
37+
This means you have to write custom converters for each of your objects unless all your objects have only strings and less than 8 arguments. That being said, unless you plan on taking advantage of their async layer on top of the normal calls, it is not worth using this library IMO.
38+
39+
If these things are not show stoppers for you, feel free to use the code. I am no longer going to fix/update/maintain any code within this library.
40+
741
## Overview
842

943
async-dynamo is an asynchronous scala client for Amazon Dynamo database. It is based on Akka library and provides asynchronous API.

0 commit comments

Comments
 (0)