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

Functional Design for Reference Architectures

Functional Design for Reference Architectures

Avatar for Jeferson David Ossa

Jeferson David Ossa

March 19, 2018
Tweet

More Decks by Jeferson David Ossa

Other Decks in Technology

Transcript

  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