diff --git a/20210323005824-distributed_systems.org b/20210323005824-distributed_systems.org new file mode 100644 index 0000000..5d93025 --- /dev/null +++ b/20210323005824-distributed_systems.org @@ -0,0 +1,24 @@ +#+title: Distributed Systems + +A [[file:20210310182044-software_architecture.org][Software Architecture]] consisting of multiple independant pieces of software +coordinating via message passing. + +* [[file:20210323010700-process_isolation.org][Process Isolation]] +- Monolith vs. Services +* [[file:20210323012431-concurrent_and_parallel_programming.org][Concurrent and Parallel Programming]] + +#+begin_quote +A system is said to be concurrent if it can support two or more actions in +progress at the same time. A system is said to be parallel if it can support two +or more actions executing simultaneously. + +-- Clay Breshears, The Art Of Concurrency +#+end_quote + +- Parallel :: Occurring at the same time +- Concurrent :: Occuring independently + +Python threads are concurrent, but not parallel (execution is serialized, +contending for access to the Global Interpreter Lock). +* [[file:20210323010014-cap_theorem.org][CAP Theorem]] +* [[file:20210323010307-conflict_free_replicated_data_types.org][CRDTs]] diff --git a/20210323010014-cap_theorem.org b/20210323010014-cap_theorem.org new file mode 100644 index 0000000..afd3f9f --- /dev/null +++ b/20210323010014-cap_theorem.org @@ -0,0 +1,8 @@ +#+title: CAP Theorem + +States that a [[file:20210323005824-distributed_systems.org][Distributed System]] cannot simultaneously be consistent, available, +and partition tolerant -- typically only achieving two of the three. + +* Consistency +* Availability +* Partition Tolerance diff --git a/20210323010307-conflict_free_replicated_data_types.org b/20210323010307-conflict_free_replicated_data_types.org new file mode 100644 index 0000000..ba72b82 --- /dev/null +++ b/20210323010307-conflict_free_replicated_data_types.org @@ -0,0 +1,4 @@ +#+title: Conflict-Free Replicated Data Types +#+ROAM_ALIAS: CRDTs + +Alternatively, Commutative Replicated Data Types. diff --git a/20210323010700-process_isolation.org b/20210323010700-process_isolation.org new file mode 100644 index 0000000..2643af4 --- /dev/null +++ b/20210323010700-process_isolation.org @@ -0,0 +1,4 @@ +#+title: Process Isolation + +Making a process wholly independent, preventing any access of its internal state +by any other process and communicating by sending and recieving messages. diff --git a/20210323011000-the_actor_model.org b/20210323011000-the_actor_model.org new file mode 100644 index 0000000..618c59f --- /dev/null +++ b/20210323011000-the_actor_model.org @@ -0,0 +1,8 @@ +#+title: The Actor Model + +A design in [[file:20210310182044-software_architecture.org][Software Architecture]] in which [[file:20210323010700-process_isolation.org][Isolated Processes]] work together as a +[[file:20210323005824-distributed_systems.org][Distributed System]], coordinating via message passing. This is modeled similarly +to how interactions occur in nature. + +This is remarkably similar to Alan Kay's initial concept of [[file:20210323011337-object_oriented_programming.org][Object-Oriented +Programming]]. diff --git a/20210323011337-object_oriented_programming.org b/20210323011337-object_oriented_programming.org new file mode 100644 index 0000000..9b20d40 --- /dev/null +++ b/20210323011337-object_oriented_programming.org @@ -0,0 +1 @@ +#+title: Object-Oriented Programming diff --git a/20210323012431-concurrent_and_parallel_programming.org b/20210323012431-concurrent_and_parallel_programming.org new file mode 100644 index 0000000..7b44ccf --- /dev/null +++ b/20210323012431-concurrent_and_parallel_programming.org @@ -0,0 +1,21 @@ +#+title: Concurrent and Parallel Programming +#+roam_key: https://joearms.github.io/published/2013-04-05-concurrent-and-parallel-programming.html +#+roam_tags: literature articles + +From Joe Armstrong's blog: + +#+begin_quote +What's the difference between concurrency and parallelism? + +Explain it to a five year old. + +[[file:data/fb/2246e7-e0a7-455b-a030-1bd4dfda4ce3/con_and_par.jpeg]] + +- Concurrent :: Two queues and one coffee machine. +- Parallel :: Two queues and two coffee machines. +#+end_quote + +* Attachments :ATTACH:noexport: +:PROPERTIES: +:ID: fb2246e7-e0a7-455b-a030-1bd4dfda4ce3 +:END: diff --git a/data/fb/2246e7-e0a7-455b-a030-1bd4dfda4ce3/con_and_par.jpeg b/data/fb/2246e7-e0a7-455b-a030-1bd4dfda4ce3/con_and_par.jpeg new file mode 100644 index 0000000..7fe9132 Binary files /dev/null and b/data/fb/2246e7-e0a7-455b-a030-1bd4dfda4ce3/con_and_par.jpeg differ