Domain-Driven Design with Relational Databases Using Spring Data JDBC

  Рет қаралды 58,965

SpringDeveloper

SpringDeveloper

4 жыл бұрын

Abstract: Domain-driven design introduces the concepts of Aggregate, AggregateRoot, and Repository. If one takes these concepts seriously, certain habits we picked up while fighting working with JPA become unacceptable. Even more, a substantial part of the complexity of JPA seems to become superfluous. The result will be performant, scalable, and maintainable.
A drawback of this approach is that we might have to fight our database administrator. But you can’t have it all, can you?
As it turns out, Spring Data JDBC supports this approach rather well.
In this talk, I’ll present how to design an object model the DDD way, why this might be a good idea, and how to build a persistence layer for it backed by Spring Data JDBC.
And I’ll even figuratively bring some candy to pacify the Database Admins.
Speakers: Jens Schauder, Staff Software Engineer, Pivotal
Filmed at SpringOne Platform 2019
SlideShare: www.slideshare.net/SpringCent...

Пікірлер: 31
@cypcode
@cypcode
Thank you for such an insight DDD is a must consider for every project
@pedrotorredesousa
@pedrotorredesousa 4 жыл бұрын
Awesome presentation! Thanks!
@seb1408
@seb1408 4 жыл бұрын
Thank you very much for this interesting video.
@robertwhite3503
@robertwhite3503
I think the problem with DDD is that it is often presented in abstract examples. A real example might be an invoice. The aggregate root is the invoice number. The invoice might involve tables for customer, line items and so on. However the business users will only talk about invoices and never about line items. It is implied that you should open and save whole invoices. However this is subjective in my opinion and is usually glossed over. Most accounting systems do present the invoice lines on a single screen, so it is not clear that you should not persist a single line, rathet than update a whole invoice. However "save invoice" is understandable to all (and is one way to ensure clarity). Then there are people, like me, that are not convinced that this simplifies anything.
@ChrisLee-fh4zz
@ChrisLee-fh4zz 3 жыл бұрын
DDD start at
@quangphongtran3558
@quangphongtran3558
So cool...
@feoktant
@feoktant 2 жыл бұрын
DDD blue book said repository is needed to focus on domain. Spring Data JDBC is more about CRUD rather than DDD's ubiquitous language. You cannot name methods as you wish, only by wrapping interface. Also, you forced to use all methods in standard interface, which you probably will never use. Some of them could be dangerous in domain, like findAll, or deleteAll.
@ebichu8126
@ebichu8126 3 жыл бұрын
At least for me the naming of this cool stuff is somehow misleading. Probably not using word “JDBC” would be more intriguing the devs into this project.
@georgepantazes5923
@georgepantazes5923 4 жыл бұрын
Hello, I'm learning DDD and I have a question about aggregating entities on the DDD side vs normalization of tables on the RDBMS side and the relationship/tension between the two design goals in the different parts of the stack.
@amjadkarim3621
@amjadkarim3621 3 жыл бұрын
can anyone share the source code? git link...
@hoangcuongninh2631
@hoangcuongninh2631 2 жыл бұрын
please share me repository
@hiamitchaurasia
@hiamitchaurasia 4 жыл бұрын
If you are watching, watch after
@genericperson8238
@genericperson8238 3 жыл бұрын
I’m tired of the relational model being compared to the “old” especially when you consider that many NoSQL solutions are based on concepts which are even older. Those general purpose RDBMs solutions are comparatively old, yes but many novel solutions based on the relational model exist too.
@atataheri
@atataheri 2 жыл бұрын
High-profile stuff was discussed in there, but MongoDB handles it all!
@tosho_ait
@tosho_ait Жыл бұрын
Modeling your Domain as DB Entity objects is the opposite of good DDD....
@geonhyeokgo2350
@geonhyeokgo2350 2 жыл бұрын
Maybe Spring Data Aggregate is better name than Spring Data JDBC
@faisaladil5793
@faisaladil5793 4 жыл бұрын
A complete waste of time. How about actually talking about the topic with a quick small demo project.
@Boss-gr4jw
@Boss-gr4jw 4 жыл бұрын
This presentation has nothing to do with DDD. Nothing useful here at all unfortunately.
@olegvorkunov5400
@olegvorkunov5400 3 жыл бұрын
Half of the presentations are Meme. Horrible.
@illiailliaa8846
@illiailliaa8846 4 жыл бұрын
more and more really useless speeches found from pivotal members. What is going on over there? and omg if you not Josh Long - where is github link of your demo? can I quickly look for it not in blurry mode? cmn ....
Developing microservices with aggregates - Chris Richardson
1:09:50
SpringDeveloper
Рет қаралды 275 М.
The New Kid on the Block: Spring Data JDBC
1:04:53
SpringDeveloper
Рет қаралды 27 М.
Which one is the best? #katebrush #shorts
00:12
Kate Brush
Рет қаралды 23 МЛН
DDD & REST - Domain Driven APIs for the web - Oliver Gierke
1:15:16
SpringDeveloper
Рет қаралды 165 М.
Spring Data JDBC: Beyond the Obvious
52:40
SpringDeveloper
Рет қаралды 16 М.
Reactive DDD: Modeling Uncertainty - Vaughn Vernon
1:15:16
SpringDeveloper
Рет қаралды 22 М.
Event-Driven Architectures for Spring Developers
1:09:45
SpringDeveloper
Рет қаралды 38 М.
Building microservices with event sourcing and CQRS
1:24:33
SpringDeveloper
Рет қаралды 112 М.
Spring Tips: Spring Modulith
37:39
SpringDeveloper
Рет қаралды 6 М.
Do’s and Don’ts: Avoiding First-Time Reactive Programmer Mines
58:38
Guide to "Reactive" for Spring MVC Developers
1:04:27
SpringDeveloper
Рет қаралды 61 М.
Spring Tips: Spring Data JDBC
27:36
SpringDeveloper
Рет қаралды 17 М.
Spring Office Hours S3E3: Spring Data JPA vs JDBC vs REST
1:03:06
SpringDeveloper
Рет қаралды 4,5 М.