6. " ... a general purpose programming language
designed to express common programming patterns
in a concise, elegant, and type-safe way"
Scala about Scala
7. Potential client about Scala
"tiny market share and require a
very specific type of developers, which is more
likely to be found in an academic, rather than
business environment"
8. OrientDB about OrientDB
"... an Open Source NoSQL DBMS with both the
features of Document and Graph DBMSs.
"... written in Java and it's amazing fast: can store
up to 150,000 records per second on common
hardware"
9. Potential client about OrientDB
"OrientDB is another experimental product which
is closely tied to European academia,
much like Scala"
"Moreover, choosing a document-oriented
database for a typical business/commercial
application is simply
an architectural mistake."
31. How would you model that?
Address
Email
Branch Customer
1..*1..*
1..*
32. Aggregate - consistency boundary
Aggregate: A collection of objects that are
bound together by a root entity, otherwise
known as an aggregate root.
33. Aggregate
The aggregate root guarantees the
consistency of changes being made within the
aggregate by forbidding external objects from
holding references to its members.
66. Updating records
update customer set name = 'Maciej'
where name = 'Maciek'
update customer add friends = #8:2
update customer put contactDetail =
'email2', 'mp@touk.pl'
70. ExtendedSQL
select from customer
where name = 'maciek'
select labels[0] from customer
where name = 'maciek'
select address.street from customer
where contactDetails.email = 'mproch@g.pl'
99. Take away:
● OrientDB data model can reflect your
domain model better than document or
relational bases
● Functional Programming patterns can help
create flexible, robust data access code