A recent request for assistance on how to pipe firehosed data to a UI thread had me harkening back to systems slightly above my pay grade. While I want to remedy that, I must say I hate enterprise-level software complexity, but at a basic level for basic software problems I find this notion of compartmentalized message-oriented software to be interesting, if only it can be made simple and easy to write and maintain. These are some recent notes I've compiled, along with some starter code I've shared.
15. Microservice 1 Microservice 2 Microservice 3
Message Queue Message Queue Message Queue
UI
Microservice
Message Processor
This is starting to look a tiny bit like a wannabe microservices architecture.
Sort of. Maybe actors.Yeah, actors. Or microservices.
18. Akka.NET
“Akka.NET” is an acronym for:
“Yet another library ported fromJVM to .NET because the
.NET community never had problem domains sophisticated
enough to need figure this out themselves.”
Actually, to be fair, remember Reactive Extensions (Rx)
19. // Create a new actor system (a container for your actors)
// Create your actor and get a reference to it.
// This will be an "ActorRef", which is not a
// reference to the actual actor instance
// but rather a client or proxy to it.
// Send a message to the actor
// This prevents the app from exiting
// before the async work is done
20.
21.
22.
23.
24.
25.
26.
27.
28.
29. • Putting ObjectOriented Programming mindset on steroids by making
simple objects self-contained and encapsulated
message-based
30. • Habitually write software to be reactive to external messages rather
than directly programmatically activated
message-based
31. • Enjoy a simplified framework that minimizes the cost of such patterns
so that they aren’t IES (Intimidating Enterprise Software, zomg)
message-based
32. • Think in these components’ message-basedAPIs rather than the
interfaces of my favorite language
33. message-based
• Implement internals with interfaces and prebuilt support containers
rather than inherit “Actors” or “Messages”; use composition