Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Functional Design for Reference Architectures

Functional Design for Reference Architectures

Jeferson David Ossa

March 19, 2018

More Decks by Jeferson David Ossa

Other Decks in Technology


  1. Context • Engineers with Java background (mostly) • Monolithic architecture

    • Emerging market • Increasing business complexity • Need for speed • New needs, new approaches
  2. Rediscovering FP • Reducing complexity ◦ Data in => Data

    out ◦ Parameterize all things ◦ Type-safe ◦ Immutability • Growing complexity ◦ Apomorphisms ◦ Dynamorphisms ◦ Chronomorphisms ◦ Zygohistomorphic prepromorphisms
  3. Object-Oriented Meets Functional FP Functions Functions Functions Functions Functions in

    the small, objects in the large OO Single responsibility Open/Close Dependency inversion Factory pattern etc.
  4. Challenges • Continue delivering business value • Onboarding new team

    members • Lack of experts on FP • Stop doing “better Java” • Knowledge management
  5. Our approach • Fine-grained control of decisions • Code/Tests as

    documentation • An easy to evolve artifact • Everyone in the team can contribute • A framework was not enough
  6. Reference architecture “A reference architecture is a set of documents

    to which an interested party can refer to for best practices, common standards, specifications and patterns” - DDD - Microservices - CQRS - ADT - DSL/Tagless - Onion/Clean/Hexagonal architecture
  7. Final thoughts • It is complex to get simple •

    Abstractions have complexity costs • Keep studying • Focus on people • Measures of success