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

Message Driven Micro-Architectures

Message Driven Micro-Architectures

Sports websites have changed massively over several short years. The richness of their offerings and availability of rich data means that our development techniques also should be evolving. Join me for the journey of how we can use message driven development patterns to deal with larger amounts of realtime data.

Avatar for Richard McIntyre

Richard McIntyre

March 30, 2019

Other Decks in Programming

Transcript

  1. Rich McIntyre @mackstar » Software Engineering Manager » Polyglot Development

    Background » Lived in Japan for 15 years » Living in Leeds
  2. GraphQL Product Customer Basket Quote Content Campaigns Offers Rules Order

    Subsmission Store Locations Propositions Affiliates Cache Session Offline Message Queue Message Service Eligibility Consul Vault Prereg Reports Portfolio
  3. The BBC says it has worked out how to eliminate

    "streaming lag", which causes live TV to be delayed by several seconds when watched online.
  4. Kafka is built to allow real-time stream processing :not just

    processing of a single message at a time. This allows working with data streams at a much higher level of abstraction.
  5. Event Sourcing In Event Sourcing, the single source of truth

    is the Event Stream, not the individual service datastores. And, to the contrary of PubSub, events are never removed from the stream when they are read. This property alone, the immutability and persistence of the event stream, make so that each datastore could be wiped out, and it could just be rebuilt by starting to read events from the beginning of time.
  6. Use cases » Messaging » Website Activity Tracking » Metrics

    » Log Aggregation » Event Sourcing » Commit Log
  7. Use cases » Messaging » Website Activity Tracking » Metrics

    » Log Aggregation » Event Sourcing » Commit Log » Stream Processing
  8. Micro-Front ends » Be Technology Agnostic » Isolate Team Code

    » Establish Team Prefixes » Favor Native Browser Features over Custom APIs
  9. Micro-Front ends » Be Technology Agnostic » Isolate Team Code

    » Establish Team Prefixes » Favor Native Browser Features over Custom APIs » Build a Resilient Site