wh op ps w hf re did my archi tf cture go
play

Wh op ps! W hf re did my archi tf cture go? In betw ef n a m oo olith - PowerPoint PPT Presentation

Wh op ps! W hf re did my archi tf cture go? In betw ef n a m oo olith ao d a sys tf m of sys tf ms mess / @ olivergierke Background C oo sulting & engin ef ring @ Pivotal Lots of code reviews Eoin W op ds talk oo InfoQ Roadmap


  1. Wh op ps! W hf re did my archi tf cture go? In betw ef n a m oo olith ao d a sys tf m of sys tf ms mess… � / � @ olivergierke

  2. Background C oo sulting & engin ef ring @ Pivotal Lots of code reviews Eoin W op ds‘ talk oo InfoQ

  3. Roadmap Divide ao d c oo quer Of l az ers ao d slices T hf modular m oo olith

  4. Divide and conquer

  5. Comp oo ent Single unit to underst ao d

  6. Comp oo ent Single unit to ch ao ge

  7. Comp oo ent Scope of r it k of ch ao ge

  8. A B Sma lm er unit to underst ao d

  9. A B Reduced r it k of ch ao ge

  10. A B Cost of sf parati oo

  11. A B Definiti oo ao d main tf n ao ce of dependencies

  12. Of layers and slices…

  13. Bi lm ing Inventory Order Pre sf ntati oo Service Data Access

  14. Layers We lm underst op d Known to developers Less import ao t to business

  15. Slices Hardly underst op d New to developers Key for business requirements

  16. Bi lm ing Inventory Order Pre sf ntati oo Service Data Access

  17. Monolith 
 VS. System of Systems

  18. Order Order Bi lm ing Bi lm ing Inventory Inventory M oo olith VS. Sys tf m of Sys tf ms

  19. Order Order Bi lm ing Bi lm ing Inventory Inventory In-process ca lm s VS. In tf r-process ca lm s

  20. Order Order Bi lm ing Bi lm ing Inventory Inventory Perform ao ce? Over hf ad? Error scenarios?

  21. " If you can’t build a modular monolith, why do you think microservices are the answer? — Simon Brown

  22. How to manage modularity in different architectural contexts?

  23. Order Order Bi lm ing Bi lm ing Inventory Inventory Me ao s to enforce c ootf xt b ov ndaries?

  24. The modular monolith

  25. How to implement 
 a modular monolith?

  26. How to maintain 
 a modular monolith?

  27. Bounded Context 
 all the things! Domain-Driven Design it a great idea! Surpr it e! In a m oo olith, t op !

  28. Architecturally- evident code

  29. Code analysis jDepend S oo arcube Structure 101 / S oo argraph jQAss it t ao t

  30. A plain Java based approach

  31. How to write code that’s less likely to deteoriate?

  32. Bi lm ing Inventory Orders Pre sf ntati oo Service Data Access

  33. Packages

  34. ….layer.slice ….slice.layer ….slice

  35. ….web.core ….service.core ….repository.core

  36. ….core.web ….core.service ….core.repository

  37. ….core ….customer ….account

  38. Does it make a difference?

  39. Dependency management

  40. Orders Orders Bi lm ing Bi lm ing Inventory Inventory

  41. Orders Bi lm ing Inventory A rule violati oo it just ao @Inject aw az !

  42. You only need to manage 
 what you can refer to…

  43. Layers first Lea kt slice in tf rna lt Lower l az ers v it ible to every oo e

  44. N ef ds to be public :( A lm ows ot hf r code to circumvent business logic

  45. Slices only K ef ps tf chnical div it i oo priva tf Encapsula tf s business module In tf rna lt underst op d ao yw az

  46. A lm package pro tf c tf d Compiler induced dependency c oo trol

  47. Bi lm ing Inventory Order Pre sf ntati oo Service Data Access

  48. Bi lm ing Inventory Order Pre sf ntati oo Service Data Access

  49. Resources Blogpost S oo argraph jQAss it t ao t Spring Data JPA @ GitHub

  50. Sample Code http://github.com/olivergierke/ 
 wh op ps-archi tf cture

  51. Thanks & Credits Eoin W op ds — Talk @ InfoQ S tf f ao Tilkov — Talk @ InfoQ

Recommend


More recommend