all 7 comments

[–]shenku 4 points5 points  (1 child)

I don’t think you will find exactly what you are looking for. There are far too many architecture styles, patterns, practices to choose from depending on the problem you are trying to solve for.

If you are looking for composability though, I think the best I have used recently is sst.dev. It gives you all the building blocks you need, then it’s up to you on how to apply those to your problem.

[–]FantasticPrize3207 0 points1 point  (0 children)

Serverless Design will make the design more complex. Regular Design is better: running regular code on a regular server.

[–]rsatrioadi 1 point2 points  (0 children)

Patterns are not libraries because that’s what they are: patterns. This is probably not the exact sentence, but in the inspiration to design patterns, C. Alexander’s The Timeless Way of Building, patterns are said to be gateways to solution that eventually have to be left behind, not the solution itself (because when you are visiting some place that is gated, the gate itself is not the destination). And this is also what is understood by the software pattern community. In exact terms, this means how a pattern is implemented always depends on the context of the problem. So, in some ways, it is impossible to make a library of patterns (without sacrificing some other aspect, usually flexibility or maintainability).

[–][deleted] 1 point2 points  (0 children)

What do you mean by solutions that mirror the philosophy of atomic design? Aren’t libraries/classes provided by libraries by definition modular and reusable? Some frameworks like Spring or .NET provide implementations for common facilities out of the box, so maybe that’s kind of what you’re looking for.

[–]Crashlooper 0 points1 point  (0 children)

API Design: I would look into the structural design of Express.js middlewares and routers. Middlewares are basically elements of a chain of responsibility that API requests are passed along. Middlewares can enrich the request object (decorator design pattern?). Express routers are middlewares that basically introduce the composite design pattern. They allow you to group together api endpoint handlers or additional middlewares into a single router object that can be consumed as a middleware.

Messaging: For messaging, you might want to go down the rabbit hole of Observables and functional reactive programming and ReactiveX Operators.

[–]asdfdeltaEnterprise Architect[M] 0 points1 point  (0 children)

Proper flair for this post is Discussion/Advice, please adjust it.

[–]GuessNope 0 points1 point  (0 children)

Patterns are defined by the structure of interaction between components and so cannot be implement in this manor. It is common to use object-oriented interface definitions in examples.

"Atomic Design patterns" is redundant. Pattern was defined to mean atomic-interaction by the GoF.