Functional event-driven architecture
โ Scribed by Gabriel Volpe
- Tongue
- English
- Leaves
- 265
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Table of Contents
Preface
Acknowledgments
People
Software
Fonts
Prerequisites
Reading material
How to read this book
Conventions used in this book
Part I: Concepts
Event-driven architecture
Introduction
What problems does it solve?
When to use it? When not?
Microservices architecture
Scalability
Fault tolerance
Observability
Versatility
CQRS/ES
Commands
Queries
Reads & writes
When to use it? When not?
Frameworks
Summary
Distributed systems
Overview
Identifying points of failure
Consistency vs availability
Idempotence
Deduplication
Atomicity
Distributed transactions
Change data capture
Distributed locks
Summary
Stateless vs. Stateful
Stateless services, stateful brokers
Stateful services
Application clustering
Message-driven architecture
Delivery guarantees
Apache Kafka
Apache Pulsar
What should I use?
State snapshots
Retention policy
Schema evolution
Schema compatibility
Versioning strategies
Schema registry
Summary
Part II: Coding
Functional programming in Scala 3
Domain modeling
Typeclass derivation
Newtypes
Refinement types
Orphan instances
Typeclasses
HTTP routes
Effectful context
Dependent types
Summary
Effectful streams
Finite state machines
Resources and lifecycle
Data pipelines
Real-time
Batching
Analytics
Data source
Producer-consumer
In-memory via Queue
Distributed via Apache Pulsar
Distributed via Apache Kafka
Summary
Part III: System
Trading system (core services)
Business requirements
Overview
Domain modeling
Shared modules
Processor
Commands
Events
Command-event relationship
Entry point
FSM
Deep analysis
Scalability
Run
Alerts
Datatypes
Event-alert relationship
FSM
Entry point
Scalability
Run
Web Sockets
Datatypes
HTTP routes
Events handler
Unit tests
Entry point
Run
Scalability
Addendum
Summary
Trading system (alt services)
Snapshots
Scalability
Entry point
FSM
Run
Forecasts
Commands
Events
Command-event relationship
Engine
SQL store
Scalability
Entry point
Run
Feed
Generators
Run
Integration tests
Redis suite
SQL suite
Summary
Trading system (observability)
Tracing
Distributed
Centralized
Build & run
Docker compose
Continuous integration
Smoke tests
Monitoring
Prometheus
Grafana
Deployment
K8s cluster
Pods management
Summary
Bonus: Web App
Entry point
Datatypes
View
Subscriptions
Updates
Build & Run
Summary
๐ SIMILAR VOLUMES
Begin building event-driven microservices, including patterns to handle data consistency and resiliency Key Features Explore the benefits and tradeoffs of event-driven architectures with practical examples and use cases Understand synergy with event sourcing, CQRS, and domain-driven development
<p><span>Begin building event-driven microservices, including patterns to handle data consistency and resiliency</span></p><h4><span>Key Features</span></h4><ul><li><span><span>Explore the benefits and tradeoffs of event-driven architectures with practical examples and use cases</span></span></li><l
The exponential growth of data combined with the need to derive real-time business value is a critical issue today. An event-driven data mesh can power real-time operational and analytical workloads, all from a single set of data product streams. With practical real-world examples, this book shows y