@mattpocockuk Love it.
I created a tool on top to define architecture boundaries.
It not only enforces them, but also visualises them.
It gives great amount understandability and control over the structure!
AI writes a lot of code.
The hard part is no longer writing it — it's reviewing it.
With so much code generated at once, thorough review becomes nearly impossible.
It's an old problem that AI made impossible to ignore.
That's why I built depcruise-viz, on top of dependency-cruiser.
https://t.co/FVQeduJoo0
The idea is simple: you define your target architecture as layers and modules, and it does two things
- enforces rules and arch boundaries
- visualises them in a way that humans understand.
You can even explore your codebase structure from the viz.
So instead of drowning in details, you see the shape of the system and keep it honest as it grows.
Still in the making.
AI writes a lot of code.
The hard part is no longer writing it — it's reviewing it.
With so much code generated at once, thorough review becomes nearly impossible.
It's an old problem that AI made impossible to ignore.
That's why I built depcruise-viz, on top of dependency-cruiser.
https://t.co/FVQeduJoo0
The idea is simple: you define your target architecture as layers and modules, and it does two things
- enforces rules and arch boundaries
- visualises them in a way that humans understand.
You can even explore your codebase structure from the viz.
So instead of drowning in details, you see the shape of the system and keep it honest as it grows.
Still in the making.
@DavidKPiano@SandroMaglione@DavidKPiano I know its alpha.
How confident are you with the api already? Any major breaking changes expected?
Also, any rough timeline for the beta and stable?
Super excited about v6 already 🚀🙏🏻
Currently:
1. ls
list all workspaces
2. lint
To lint issues
3. fix
Autofix where possible.
And -i to interactively fix
4. format
format package.json
5. add
smart add package.
If already present somewhere, add that version, or fetch latest.
When I started learning Effect:
Fiber interruption is the one I enjoyed the most.
And Scope is the one I dreaded most 😬
I added both to the fiber series:
Part 3 (Interruption): https://t.co/wDRNt4M9jQ
Part 4 (Scope): https://t.co/wDRNt4M9jQ
@EffectTS_
Correct. Parallelism is not possible in js. But, concurrency is different from parallelism. Parallelism helps for CPU bound operations. While concurrency is essential for IO bound stuff.
And what fibers provide is concurrency in JS.
I think of fork, join, await, and others more as lego blocks to mix and compose as per our needs.
Effect TS provides us all the primitives. At the end its upto us how we model our requirements.
Lets say you have an IO bound operation. And you want to run it alongside parent. Then you fork it.
Now you continue with parent. Later at some point, you want to wait for that IO bound operation result in parent, then you join the forked Fiber. If you want it to outlive the parent, you fork it as a daemon.
Daemon even though easy should be used sparingly.
Scope gives better control over exact lifecycle boundaries.
Playing with fibers start with forking and joining them.
what is that?
What does life cycle of a forked fiber look like with structured concurrency?
How to make a fiber outlive its parent?
Effect TS Fiber part 2 at:
https://t.co/FQ9tZi5JN8
@EffectTS_
Thanks @tim_smart 🙏🏻
My understanding is:
fiberRef is how we store the fiber level information.
Where forked fiber inherits information from parent fiberRef and stuff.
Is this understanding correct?
If FiberRef is removed, how is context and Fiber related information stored in new Effect 4? How does it work
One of the biggest strengths of Effect.TS is its Fiber based runtime.
Something I love the most.
But what is a Fiber in Effect?
How does concurrency in Effect work?
Fiber part 1 at: https://t.co/Bc5jUZ4kue
@EffectTS_
Its mostly from docs, yourube, talks, blog posts and experience.
Youtube videos of Lucas Barake are really great!
It took me significant time for everything to click.
There are still some gaps in my understanding. I am planning to only write things that I am reasonably confident about.
Yes. And It does feel redundant too.
But more you use it, the more you appreciate it.
Effect runtime brings structured concurrency, ability to interrupt fibers, and lot of other capabilities
Just like Effect eases error handling and dependency injection. Effect runtime brings superpowers over its execution.
I have been having this question since some time.
I am having multiple entities in a single table.
Each entity having its own independent schema.
For access patterns I derive pk, sk, gsi1pk, gsi1sk as needed from the keys of the entity.
Ex: pk: [userid, “todos”], sk: updatedAt
Where pk becomes “{userId}#todos” and sk “{updatedAt}”
Where userId, updatedAt are already keys of the entity.
I made a design choice to not fetch multiple kinds of entity in a single access pattern.
Why?
Lets say I want list of posts and list of comments. Instead of squishing them in a single item collection, I make 2 queries. So I dont need to worry about order or anything. One less thing to worry.
Also from cost perspective, it would just be 1 RCU difference right?
What is the advantage of combining multiple entities to a single item collection? I don’t see any cost benefitsz infact not doing it would actually simplify lot of things. Am I missing something here?
I created my own optimistic layer on top of tanstack db 🚀
Lets say:
You insert, 5x update an item.
Updation without insert, would be an error.
Parallel updates would be indeterministic.
How about we wait and batch?
Demo: https://t.co/77QZeuxMjq
@tan_stack , @EffectTS_ , @dynamodb
Github repository: https://t.co/FVQeduJoo0
std-toolkit is an attempt to bring single table design ideas for tanstack db.
FYI @dillon_mulroy you can find the dynamodb client and single table design implementation for dynamodb there.
No packages published. Everything is in flux and in exploration phase.