Skip to content

Distributed Computing

Distributed Computing fundamentals

Time and Event ordering

See: Lamport timestamp

Distributed Applications

Topics to take into account

  • logging
    • structured
    • pulled into central log service
    • Java: SLF4J + LogBack?
    • Go: logrus
  • tracing
    • sampling based
  • metrics
    • prometheus
    • including alert definitions
  • network connection stability
    • services discovery
    • loadbalancing
    • circuit brakers
    • backpressure
    • shallow queues
    • connection pools
    • dynamic/randomized backoff procedures
  • network connection performance
    • 3-step handshake
    • binary over http
    • standard protocols
    • thin wrapper for UI: GraphQL
    • thick wrapper for UI: JSON over HTTP (restful)
    • Service to Service: gRPC / twirp

Designing Distributed Systems - Brandon Burns

Sidecar pattern

docker run -d <my-app-image>

After you run that image, you will receive the identifier for that specific container. It will look something like: cccf82b85000... If you don’t have it, you can always look it up using the docker ps command, which will show all currently running containers. Assuming you have stashed that value in an environment variable named APP_ID, you can then run the topz container in the same PID namespace using:

docker run --pid=container:${APP_ID} \ -p 8080:8080 brendanburns/topz:db0fa58 /server --address=0.0.0.0:8080

Resources


Last update: 2019-08-31 13:12:00