• 6 Posts
  • 21 Comments
Joined 1 year ago
cake
Cake day: June 5th, 2023

help-circle














  • The hexagonal architecture or onion architecture is oversimplified as having everything bolt onto a core of business logic via designed and designated interfaces to abstract away implementation details on either side.

    Say you have a web app which takes requests from the outside world and based on those requests it performs some business logic (tracking accounts, orders, etc).

    In hexagonal architecture you’d maybe implement such a thing like:

    Web app handler -> command interface -> message bus -> command handler (business logic) -> repository interface -> repository (Postgres, mongo, memory, email)

    What this lets you do is split apart the app at the interfaces into separate modules which can be reasoned about and tested separately.

    End of the day you don’t care what is happening on the other side of the interface as long as whatever it is follows the interface specification.

    Building applications like this meants that if we wanted to extend our app with an API and a Real-time Websocket service, we can (usually) just write a handler to turn that request into a command for the command interface and be done with it.






  • To add, this is because a typical evil character isn’t <just evil>. They’re someone who has a major difference in perspective from yourself doing the best they can with the baggage of the choices and situations they’ve been dealt. You see this in the cultures on either sides of wars. They’re invaders, we’re liberators, etc.

    A good evil play through doesn’t start with the party having any idea of the evil they’re unleashing. It’s only after they’ve made every good and self-justified decision they can where you hand them the mirror and break their self-image allowing them to lean into it if they want to.

    If you want to try this out for yourself so you can see how it works, go play some Rimworld until you have a lived-in colony. (1yr+)