Skip to content

Conversation

@koubaa
Copy link
Collaborator

@koubaa koubaa commented Feb 20, 2024

I wrote this page of the documentation to clearly explain why there is both a remote and non-remote PyMechanical interface, and why the remote interface looks like it does.

Mohamed Koubaa added 2 commits February 9, 2024 09:01
@github-actions github-actions bot added the documentation Improvements or additions to documentation label Feb 20, 2024
@sbradrick
Copy link
Collaborator

sbradrick commented Feb 20, 2024 via email

koubaa and others added 3 commits February 21, 2024 06:19
Co-authored-by: Dipin <26918585+dipinknair@users.noreply.github.com>
Co-authored-by: Dipin <26918585+dipinknair@users.noreply.github.com>
Mohamed Koubaa added 2 commits February 22, 2024 11:45
@koubaa
Copy link
Collaborator Author

koubaa commented Feb 22, 2024

@PipKat @sbradrick I've incorporated some of the feedback and pushed again. The "Distributed Systems" section is probably the least clear in my opinion, I will give it some more attention/rework tomorrow

Mohamed Koubaa added 3 commits February 22, 2024 12:04
Copy link
Collaborator

@klmcadams klmcadams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was really good! It made sense to me. I just had a question about what categories you were referring to in the "Message Passing APIs" section. The footnotes & links were a nice touch for additional explanations

Mohamed Koubaa added 3 commits February 23, 2024 09:44
@koubaa koubaa merged commit 3bbaa80 into main Feb 26, 2024
@koubaa koubaa deleted the architecture-doc branch February 26, 2024 13:52
Command pattern
---------------

Many interactive apps use the command pattern. It turns anything that the user
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...anything that you do within the app into a command object...

Mechanical app in-memory inside of a Python program. There is no additional
running process associated with it. Mechanical's data model is directly
available within Python, which means that the fully CRUD data model of the
mechanical API can be used.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mechanical

not meant be exhaustive and rigorous, but it instead introduces just the topics
necessary as simply as possible to help you understand the choices made by the
designers of PyMechanical.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section contains a very basic explanation of distributed systems. It is not meant to be an exhaustive explanation, but rather an introduction to only the topics necessary to help you understand the choices made by the designers of PyMechanical.

is said to have done an RPC. Unlike a normal procedure call, it can be
unreliable and orders of magnitude slower. There also needs to be a handshake
so that both sides understand how to interpret the bytes that move on the wire
between computers [#f6]_. This handshake can be negotiated byte-per-byte, but
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bytes that move between computers

that have been tried and tested.

While standards are useful, it is not practical for every developer to craft
packets to send over the wire by hand. Around the most popular conventions of
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The most popular...

should be written. Some offer low-level method invocation facilities, like gRPC
and zeroMQ. Others take a view on how RPCs should be done. Two such views are
*Representational State Transfer* (REST) and *Remote Method Invocation* (RMI).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

However, libraries and tooling can be opinionated (? Have requirements about?) in how RPCs can and should be written. Some offer low-level method invocation facilities, like gRPC and zeroMQ. Others take a view on how RPCs should be done (such as?). Two such views are Representational State Transfer (REST) and Remote Method Invocation (RMI).

------------------------

In the nineties, *Object Oriented Programming* (OOP) exploded in popularity.
Among other things, OOP allows programmers to add abstractions on top of data
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

enabled programmers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants