From the docs, it looks like it's building a graph to retrieve data, though the comparison it gives contrasts it to doing many small individual queries and passing them to other methods to get evaluated.
I find in the apps I'm working on, either services will build complex queries themselves, or they need to make multiple queries due to data needing transformations between queries that aren't simple to facilitate in the database itself (these services also tend to avoid code in the database, which I'm mixed on).
In the "Deep Composition" section it has a comment in the code `// These three tiles run in parallel`. Does that mean that the way of composition is through pulling in multiple different pieces of data then joining at the application layer?
I'm coming from a very much sql mindset and trying to understand the intended mechanism for data retrieval here. It kind of reminds me of how ad-hoc LINQ queries use Expression trees to resolve sql queries, but not exactly the same.
Interesting! This framework tackles complex APIs with contract-first design and real integration testing - no mocking! Sounds like a strong solution for API sprawl, and the Apache 2.0 license is great. Performance and ease of learning are the key questions I'd have. Worth a look.
Any framework does add overhead, and this is no exception. But Mosaic does a pretty good job of keeping things flowing. All of your API requests are running on totally separate threads with no shared memory to get blocked. The overhead is limited to a native ConcurrentHashMap lookup per tile invocation and the map instance is unique per API request, even when multiple are being handled at the same time. Shouldn’t be a concern for 99% of use cases.
As for the ease of learning, please, give it a try! I think it’s very straightforward but I’m obviously a bit biased. Would welcome good feedback to incorporate into a v1 release.
How does this work internally?
From the docs, it looks like it's building a graph to retrieve data, though the comparison it gives contrasts it to doing many small individual queries and passing them to other methods to get evaluated.
I find in the apps I'm working on, either services will build complex queries themselves, or they need to make multiple queries due to data needing transformations between queries that aren't simple to facilitate in the database itself (these services also tend to avoid code in the database, which I'm mixed on).
In the "Deep Composition" section it has a comment in the code `// These three tiles run in parallel`. Does that mean that the way of composition is through pulling in multiple different pieces of data then joining at the application layer?
I'm coming from a very much sql mindset and trying to understand the intended mechanism for data retrieval here. It kind of reminds me of how ad-hoc LINQ queries use Expression trees to resolve sql queries, but not exactly the same.
That's a nice abstraction, kudos. I wish I'd read this README before I started my backend project.
Does anyone know of a similar package in rust? My kotlin is a bit lacking to understand everything here.
Interesting! This framework tackles complex APIs with contract-first design and real integration testing - no mocking! Sounds like a strong solution for API sprawl, and the Apache 2.0 license is great. Performance and ease of learning are the key questions I'd have. Worth a look.
Any framework does add overhead, and this is no exception. But Mosaic does a pretty good job of keeping things flowing. All of your API requests are running on totally separate threads with no shared memory to get blocked. The overhead is limited to a native ConcurrentHashMap lookup per tile invocation and the map instance is unique per API request, even when multiple are being handled at the same time. Shouldn’t be a concern for 99% of use cases.
As for the ease of learning, please, give it a try! I think it’s very straightforward but I’m obviously a bit biased. Would welcome good feedback to incorporate into a v1 release.
Looks interesting!
Can anyone remind me. There's some .Net library that works similarly right?
I want to know about this app