Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know...)

Поділитися
Вставка
  • Опубліковано 8 січ 2025

КОМЕНТАРІ •

  • @TomaszWota
    @TomaszWota 9 років тому +109

    This is gold.

  • @LewisCampbellTech
    @LewisCampbellTech Рік тому +15

    RIP Carl Hewitt. One of the great pioneers of our field.

  • @user-dd6zz8vq7b
    @user-dd6zz8vq7b 7 років тому +52

    This format of question-answer between experts is so useful

  • @sLiv256
    @sLiv256 3 роки тому +3

    This is the best video on actor model in the universe

  • @augustinmouchot7358
    @augustinmouchot7358 9 років тому +19

    39:30 "... we don't know much, and some of it's wrong." Thanks for the upload.

  • @TheSlimshader
    @TheSlimshader 4 роки тому +7

    "we all have a future" I miss simpler times

    • @ximono
      @ximono Рік тому

      We all do. Whether it's a good one is another question.

  • @NarendraPathai
    @NarendraPathai 11 років тому +7

    Great explanation for difference between non-determinism and in-determinism!!!

    • @RatneshEVAREEMA
      @RatneshEVAREEMA 9 років тому

      Could you please explain me how Future avoid deadlock?

    • @JaksaVuckovic
      @JaksaVuckovic 9 років тому +4

      +Ratnesh Srivastava Probably that line was out of place, there was no deadlock in that "recursive" scenario. It was just a possible infinite loop. In general to avoid deadlock with actors, the trick is in giving up global consistency. Say I have an actor A for a bank account 1 and an actor B for account 10002. Both customers want to transfer money to each other. Customer 1 sends a message to actor A to remove $5 from itself and the instruction to tell B to add $5 to itself. Customer 2 sends a message to B to remove $7 from itself and to tell A to add $7 from itself. As you can see, there can be no deadlocks here, but the system goes through globally inconsistent states and it may get stuck in one of them if there is a message loss.

  • @ales-rocks
    @ales-rocks 5 років тому +3

    couple of years later... still gold!

  • @v.baranov450
    @v.baranov450 Рік тому

    Can someone explain 37:25? Does the actor use it's own balance when passing balance + deposit to another actor, or it'll be bould to the receiving actor's balance? Also it seems to me that the actor holds immutable data (balance in this case), but is it required for the actor model to work?

  • @faranak-cs
    @faranak-cs Місяць тому

    Great explanation of Actor model

  • @linz4213
    @linz4213 9 місяців тому

    20+ times watch this, every time I got some new insight, this time is I'm more curious about the address part of the Actor model, it's the key to make it a really useful like Zenoh's key expression, a global dynamic name space, instead of more static integer based IP like address

  • @robertcannon3190
    @robertcannon3190 Рік тому +5

    RIP Carl Hewitt

  • @slavsquatch7
    @slavsquatch7 3 роки тому +2

    This guy sounds a little like David Lynch and I love it.

  • @austinejei
    @austinejei 5 років тому +20

    "i meant Bing" looool

  • @borncrusader
    @borncrusader 9 років тому +4

    Nice talk! Thanks. And I'm really surprised about the amazing audio quality too.

  • @FourWheelMotion
    @FourWheelMotion 8 років тому +1

    A good intro to Actors, its relationship with other model, and possible future concern.

  • @SteeleDynamics
    @SteeleDynamics 2 роки тому +1

    Thanks for the video! Great conversation!

  • @edenasharpie
    @edenasharpie Рік тому +1

    oh my, i still wanted to know more 8|

  • @laughingvampire7555
    @laughingvampire7555 2 роки тому +2

    amazing talk however Hewitt makes an error while interpreting lambda calculus, he adds time when there is no time in lambda calculus, expression rewrite isn't time.

  • @ximono
    @ximono Рік тому

    At 37:40, Hewitt says it's not an event loop ("another way to misunderstand things"). How so? I thought an event loop would be a very suitable choice when implementing an actor system. I'm curious to know why that wouldn't be.
    Great video, by the way! Thanks for recording and sharing this with the world.

    • @LusidDreaming
      @LusidDreaming Рік тому +2

      Actors are more like fibers (lightweight/green threads) and should be thought of as running in parallel (even if they are not in reality). An event loop is a single threaded model, where you have many concurrent operations yielding to each other, but all being scheduled by a single thread and thus never run in parallel. This is how a system like node.js gets away with no locks, because every line of code is inherently atomic (since the thread will finish that line of code before switching to another process).
      Now, if you consider the actor model on a single OS thread, it becomes like an event loop. But it should not be modeled as such, or else it would not be portable to many threads (and cores for actual parallel processing).
      In general, the power of the actor model is the ability to run on N cores, where N is the total number of actors. In other words, if you correctly implement an actor system, in theory you could horizontally scale to the point that each actor is essentially its own computer. In practice, there are usually different semantics for remote actors vs local actors as abstracting that away can cause many foot guns, but distributing an actor system is still much less work than distributing something that was originally designed in the event loop model, since that system would make assumptions about atomicity that would no longer be true.

    • @ximono
      @ximono Рік тому

      @@LusidDreaming That makes sense. Thanks for the great answer!

  • @MrSuperrussianboy
    @MrSuperrussianboy Рік тому +2

    RIP Hewitt (2022)

  • @comprehend-ug3st
    @comprehend-ug3st Рік тому

    great video indeed

  • @lepinecode4298
    @lepinecode4298 4 місяці тому

    RIP Carl Hewitt he was so funny and humble😂

  • @emmanuelbakare7311
    @emmanuelbakare7311 5 років тому +2

    Great content

  • @PamirTea
    @PamirTea 9 років тому +7

    Dope shirt.

    • @god5535
      @god5535 4 роки тому

      acid wash + logic ... two of my favorite things

  • @danilomenoli
    @danilomenoli 5 місяців тому

    I find funny all his talks and papers never mention Erlang which is the greatest actor implementation in the world.

  • @taggosaurus
    @taggosaurus Рік тому

    Nobody is talking about how he made the list 0 indexed at 1:30

  • @hepin1989
    @hepin1989 2 роки тому +1

    thanks for this

  • @vtr8427
    @vtr8427 2 роки тому +2

    RIP

  • @shibu1000
    @shibu1000 7 років тому +9

    Nice video, explained really well. Makes me wonder am I wasting my time not being academics.

  • @StephenPaulKing
    @StephenPaulKing 11 років тому +1

    Has anyone implemented the Actor Model using Fraglets?

  • @VulpisLarvalis
    @VulpisLarvalis 8 років тому +5

    Mind blown

  • @mwgkgk
    @mwgkgk 8 років тому +2

    Very accessible!

  • @cgdogan
    @cgdogan 6 років тому +3

    Nice chat. But I get confused at some point; is the future the only way of getting a response? If so, and if it is undetermined when to execute and get a response how can a modern world's request/response messaging infrastructures, such as http, ftp, etc., can be implemented on top of actor model if the requester triggering the future is not a system but a human-being? Cause humans are impatient creatures that require a response immediately, such as when somebody presses the play button on youtube's player, he/she can not wait for the system to play that content at any point in time, he/she requires a response for that action immediately. At least he/she waits for a response for awhile and requires to get a timeout response. What about timeouts and exceptions?

    • @corey4448
      @corey4448 2 роки тому +1

      Is there's problems with getting just a raw response in most cases, and future if it is needed? He doesn't say that future is the only way, but it could be the way when it's hard computation or something time consuming enough.

    • @ximono
      @ximono Рік тому

      Also, a future can resolve relatively quickly as well, although having some overhead. Like any tool, it should be used appropriately though.

  • @erionomeri007
    @erionomeri007 2 роки тому

    Great info thanks!

  • @yenwel8541
    @yenwel8541 6 років тому +1

    I've been waiting so long to see the answers in this video dammit. great video

  • @mishamovdivar
    @mishamovdivar 4 роки тому

    The guy in the background when they say "we'll suck!"

  • @TimScarfe
    @TimScarfe 7 років тому +1

    Great video very enjoyable

  • @ManyouRisms
    @ManyouRisms 5 років тому +7

    I feel like the camera is being operated from the sun via a joystick. Great video though.

  • @jamescoppe
    @jamescoppe Рік тому

    Nice

  • @innerpeace5763
    @innerpeace5763 8 років тому +3

    Great conversation :) Nice stand up idea. EazyPeezyJapaaneezy :D

  • @cnkumar20
    @cnkumar20 Рік тому

    Actors can create , I would ask In distributed sytemsneed to be specfic if an actor can destroy an actor or not and be in assumption that it can destroy just because it created period , how is it managed. great realistic brainstorm though.

    • @ximono
      @ximono Рік тому

      AFAIK, it can only ask an actor to destroy itself. But don't quote me on that. It probably differs between implementations too.

    • @kevinmcfarlane2752
      @kevinmcfarlane2752 Рік тому

      Petabridge has some excellent documentation on Actors and how they interact. Recommended.

  • @ikinci4473
    @ikinci4473 2 роки тому

    Thanks.

  • @ProgrammerinToronto
    @ProgrammerinToronto 4 роки тому

    Heroes!!!

  • @BethKjos
    @BethKjos 2 роки тому

    In Godel's defense, Turing machines don't have IRQs.

  • @samuelvidal3437
    @samuelvidal3437 8 років тому

    Petri Net is very well physically realisable. It describe chemical reaction systems

    • @rebase
      @rebase 7 років тому

      Samuel Vidal no, that's a Petri dish

  • @Blace007
    @Blace007 10 років тому +5

    38:46 well here we see something that recently has changed. we now have the possibility of global consistency enabled by the invention of the blockchain

    • @sojufresh
      @sojufresh 6 років тому +11

      but even blockchain would not have global consensus if some nodes were totally isolated from other nodes. It would have local arbitration as said later on in the video.

    • @ximono
      @ximono Рік тому +1

      Or eventual consistency with CRDTs. I like the idea of coupling Actor Model and CRDT.

  • @TheVincent0268
    @TheVincent0268 11 місяців тому

    ik snap er nog steeds geen reet van

  • @driziiD
    @driziiD 4 роки тому +1

    sepuku chickens

  • @no_more_free_nicks
    @no_more_free_nicks 9 років тому +1

    Can I donate you a nicer T-shirt?

  • @EmanueleDiSaverio
    @EmanueleDiSaverio 10 років тому +5

    uhm ... doesn't sound like a ... sound theory.
    Lots of stuff ... lots of "in practice"... bah

  • @michaelkohlhaas4427
    @michaelkohlhaas4427 4 роки тому

    *As if these clowns would know anything!*

    • @canelonism
      @canelonism 2 роки тому

      bold

    • @canelonism
      @canelonism 2 роки тому

      lol

    • @ngc248
      @ngc248 2 роки тому +1

      @michaelkohlhaas4427 oh clown king ... plz enlighten us

  • @sidekick3rida
    @sidekick3rida Рік тому +2

    RIP