Overview
Syllabus
This recording is from NDC Oslo 2018
Objectives
Monolithic: The old school approach...
Microservices: The Brave new world...
Microservice Architecture
Advantages
Microservice: A functional view
Why not to use OOP?
Modelling a Service using FP
Implementation: Example in F#
Asynchronous workflows
Loose Coupling implies Distributed Data
Domain Driven Design (DDD)
Elements of DDD
DDD: Aggregates
Data Partition Strategies: Use DDD
DDD: Architecture Layers
Problems with Distributed Data
Cannot use ACID Transactions
Cannot use 2-Phase Commit
Eventual Consistency
Event Driven Architecture
Introducing Sagas
Communication: Request/Response
Communication: Event-Driven
Communication Patterns
Contract Management
Event Sourcing: Introduction
Implementing Event Sourcing in F#
Event Sourcing: Benefits & Drawbacks
Command Query Responsibility Segregation
Multiple Views from Single events stream
CORS: Benefits & Drawbacks
Testing Microservices (Request/Response)
Testing Microservices (Event Driven)
Static Analysis of Functional style code
Scalability
Code Correctness
Case Study: Twitter
Summary
Taught by
NDC Conferences