home.social

Search

165 results for “oskardudycz”

  1. Hey @oskardudycz,
    thanks for doing the hard work of digging into parts of Npgsql that we haven't documented yet. I've responded in your PR.
    You'll have to replace the call to Npgsql.Replication.Internal.LogicalReplicationConnectionExtensions.CreateLogicalReplicationSlot() at github.com/oskardudycz/Postgre with a call to Npgsql.Replication.PgOutputConnectionExtensions.CreatePgOutputReplicationSlot() and then everything should work without patching #Npgsql.

  2. Object-oriented or relational? Why not both?

    For many years, we tried to fit the business data into a normalised table structure. We used Object-Relational Mappers, which was a constant battle on how to map unfitting models.

    Then document databases like MongoDB came along and got traffic.

    Still, many people wanted guarantees they had in relational databases, they also wanted to reuse muscle memory related to operations and other tooling.

    Now we have the choice as we have #JSONB data type implemented by #PostgreSQL and then by MySQL, SQLite.

    The B in JSONB stands for binary. It looks like a JSON, it quacks like a JSON, but it's not JSON. And thanks to that, it's powerful.

    When you're storing JSON data in JSONB, it's parsed, tokenised, and stored in a tree-like structure. Types are preserved, and a hierarchical structure is also preserved, and thanks to that, you can index it and efficiently query it.

    I'm super happy that in recent years, I have had the opportunity to use Postgresql and JSONB, first in Marten and now in Pongo. I didn't look back. JSONB has its cons, but for most typical line-of-business applications, they're negligible.

    I finally wrote an intro in #ArchitectureWeekly about how JSONB works, check it, tell me how you liked it and share with your friends!

    And most importantly, play with it on your own 😊

    architecture-weekly.com/p/post

  3. Btw. It's the 101st closed Pull Request in #Pongo. Chef kiss 👌😎

  4. See what I just merged! 🎉🐶 There are a few steps left, but hey! The First working version of #SQLite support in #Pongo landed in the main branch!

    github.com/event-driven-io/Pon

  5. #Pongo just reached 1300 🌟 on GitHub! Nice!

    If you’d like to match #MongoDB accessibility with #PostgreSQL powers - try it!

    github.com/event-driven-io/Pon

  6. Me ATM fighting with the #TypeScript generics while reshaping ⁠#Pongo API 😅

  7. The current Open Source model assumes symmetry between all users, but... When the OSI insists cloud providers deserve equal treatment to individual developers, it forces projects into defensive positions.

    Then we hear:
    - Rug pull!
    - Open Source drama!
    - Yet another License change!

    And guess what, I'm also want to set a dual license for #Pongo and #Emmett. I want to do it in a transparent way and created a dedicated, public RFC for that: github.com/event-driven-io/emm.

    If you have some thoughts around it, please comment and share with me your thoughts.

    If you don't have, then I think that this RFC is still a decent way to learn on the OSS licensing, and why you should care about it. I tried to explain them in a straightforward way, together with the background.

    Sharing is caring, so I'd appreciate resharing or tagging someone who can have experience to share 🙂

  8. Folks, it's happening! I started to work on #SQLite support for #Pongo. Stay tuned, more to come soon! 🤟

    github.com/event-driven-io/Pon

  9. @rdnt it's great that you're saying that, as that's why I created #Pongo: github.com/event-driven-io/Pon

    Together with #Emmet PostgreSQL support it makes it already possible (at least if you're in Node.js space).

    See:
    - event-driven.io/en/emmett_proj
    - event-driven.io/en/projections

    And more about Pongo internals: event-driven.io/en/pongo_behin

  10. In my recent article the leitmotif is how to bootstrap CRUD applications with #Pongo.

    If you’re not considering using my tool, or Node.js in general, then I believe it could be useful for the second hidden plot.

    This practical example was a chance for me to discuss what’s actually CRUD for me. When it’s fine to use it, when not.

    I also touched on how it relates to CQRS.

    Yes, I believe that you can do CRUD and CQRS at the same time. How come? Read more 👇
    event-driven.io/en/crud_with_p

    2/2

  11. 🎉🙌 Just got the first sponsor for #Emmett and #Pongo. Thank you, Christopher Watford, that’s much appreciated!

    You can also become one, and get “help me, help you” synergy. Sponsor tiers also include extended support for users and other perks. Check more 🙂👇

    github.com/sponsors/event-driv

  12. I'm being quite frank about my desire to make working on #Emmett, #Pongo, and other community projects sustainable. I'd like to get enough money from direct work on those projects to fully focus on them and bring more value to you and your projects.

    I think that supporting #OpenSource is a win-win for both sides. If you're using or considering using Emmett or Pongo tools, it's also some sort of due diligence to reduce the bus factor and maintain them continuously.

    1/

  13. Next year, I'll try to speak more about #Emmett and #Pongo at conferences (both on what you can do with them and my lessons learned building them).

    Do you have any recommendations on nice JavaScript/TypeScript conferences? I'd like to dive more into the JS/TS community.

  14. I might never reach full compatibility, as the API can have numerous permutations that I didn't predict. I don't want to block anyone waiting for the new release with the fix. I think that SQL is a decent fallback.

    That's why I added a few options for using #SQL in the #Pongo API.

    Read more about them in my recent article 👇

    event-driven.io/en/sql_support

    What are your thoughts?

    4/4

  15. Users should get a learning ladder. That's why I optimise the API and tooling for the newbies.

    That's why, in #Pongo, I'm trying to join two accessibilities: muscle memory and the Node.js community by reusing the #MongoDB client API and #PostgreSQL operation easiness and familiarity. I think that enables me to ramp up quickly and deliver business value by deploying the first version of your software to production.

    2/

  16. I had a lot of fun showcasing and explaining #Pongo with @FranckPachot on the #YugabyteDB stream.

    We went together to discuss why #Pongo uses #PostgreSQL. Seeing live how that plays with #nodejs and #typescript

    We also saw some SQL and explained how JSONB storage works, among many other things.

    Check it out here: youtube.com/watch?v=p-6fpV_GDE

    Leave the feedback afterwards.

    Boosting is also appreciated!

  17. I think that I made a good progress on #Pongo shell improvements.

    Pongo is my #Nodejs project that allows the use of #PostgreSQL as a document database with # Mongo-compliant syntax.

    I think that having a shell gives a good experience, allowing you to just play with tools.

    Just try it with:
    npx @event-driven-io/pongo@latest shell

    Here's how it looks 👇

    Check Pongo more here: github.com/event-driven-io/Pon

  18. If you'd like to see what I'm brewing with #Pongo, so using PostgreSQL as a strongly-consistent Document Database in #nodejs and #typescript, check the video youtube.com/live/P4r19rv4vOg

    There were some bloopers during live coding, presentation gods weren't with me today, but I think it's still a decent mark of the #Pongo journey 😉

  19. I just noticed we're one person short of having 100 people on the #Emmett & #Pongo Discord server.

    Who wants to be the 100th? 😀

    Feel invited! discord.com/invite/VzvxR5Rb38

  20. Boom 💣💥 New #Pongo Release with a huge set of changes!

    1. New Pongo shell, you can now use REPL without installing Pongo in your project.

    2. Optimistic Concurrency handling, no need for Mongo-like retries.

    3. You can use custom SQL updates, filtering with useful SQL tagged template literals to cover what's missing in the API,

    4. You can now print your queries to the console to track what's happening

    5. Added sample using hashtag#CockroachDB and typed client.

    #Nodejs #Typescript
    1/

  21. As I'm working on adding observability #Emmett and #Pongo, I decided to return to this idea and show how tests can drive predictable observability!

    Check the latest #ArchitectureWeekly release to see my take: architecture-weekly.com/p/maki

    As always, feedback is more than welcome!

    4/4

    #OpenTelemetry #Observability #softwareengineering

  22. In case you missed it, #Pongo got a big release with a new feature set yesterday.

    I know that reading release notes may sound boring, so I did a more human-readable write-up, especially for you.

    event-driven.io/en/pongo_stron

    I covered why getting a strongly typed client with full typing and storage migrations is a big deal in both DevEx and Performance.

    p.s. Pongo is like a Mongo but uses Postgres to give you strong consistency and user-friendly API. Check it out

    #nodejs #TypeScript #Postgres

  23. New big 🐶 #Pongo release!

    💪 Strongly typed client.

    You can define your collections typed schema and benefit from Typescript. It'll automatically generate the collections with provided names and typing.

    🖥️ CLI tool

    Together with typed schema, enables running database migrations upfront. That helps to get a performance boost, as you can disable automated schema setup (which is good for the dev environment but not for the prod).

    See: github.com/event-driven-io/Pon

    #nodejs #TypeScript #JavasScript

  24. First days after vacation and new #Pongo release. I added support for regular (non-pooled) connections. That should enable using it (and #Emmett) with solutions like Cloudflare Hyperdrive and connection pools like PgBouncer.

    Small, but important step. See more in 👇

    github.com/event-driven-io/Pon

  25. It's been a week since the initial 🐶 #Pongo release, and I have a big set of updates!

    1. I managed to close the basic coverage of document manipulation methods. I added initial versions of what was initially missing: replaceOne, drop, rename, countDocuments, count, estimatedDocumentCount, findOneAndDelete, findOneAndReplace, findOneAndUpdate, etc.

    1/

  26. How to build #MongoDB Event Store? The neat part is you don't!

    Oh well, past me thought like that, but Alexander Lay-Calvert persuaded me to change my mind and did most of the work. We delivered #MongoDB storage, and it went surprisingly well. I wrote a detailed write-up on how to do it!

    There were many interesting challenges in how to make it consistent and performant, so I think that's an interesting read.

    I think it's a good guide if you're considering using #MongoDB as anevent store. Surprisingly, I have had numerous discussions recently with people trying to do it.

    If you're considering using key-value databases like #DynamoDB and #CosmosDB, then this article can also outline the challenges and solutions.

    My first choice is still on #PostgreSQL, but I'm happy with the #MongoDB implementation in #Emmett.

    If #MongoDB is already part of your tech stack and the outlined article constraints are not deal-breakers, this approach can deliver a pragmatic, production-friendly solution that balances performance, simplicity, and developer familiarity.

    I'm not sure what took longer, delivering the implementation or writing this article. So I'll appreciate the feedback and sharing with your friends. ❤️

    event-driven.io/en/mongodb_eve

  27. I need your brain! Today, I started working on the Emmett CLI and Config file structures.

    I want Emmett to be able to generate the schema upfront for event store and read models. I also want to make a first step towards plugin infrastructure and modularity.

    Check the sample config file. It'll contain plugins (similar to eslint, etc.) so each Emmett package can self-register, and community plugins can be registered in the future.

    1/
    #nodejs #TypeScript #JavasScript

  28. So I just casually merged such a small Pull Request extending „a bit” my workshop exercises in #Java.

    github.com/oskardudycz/EventSo

    Wanna see how to implement event stores on top of #PostgreSQL or #Mongo? How to use #EventStoreDB? Why not!

    I’m going to have a few open and private workshops teaching #EventSourcing in practice. You can also join them or schedule one.

    Or, you can try to do exercises as a self-paced kit, as I’m always open sourcing all of them. That’s not the full workshop experience, but can be good enough 🙂

  29. "Event Streaming is not Event Sourcing!" is probably the article I'm linking the most from those that I wrote. It's part of my Don Quixote crusade to untangle those terms, as I've seen many significant architectural decisions made without realising those differences. And the consequences were severe.

    There's a skewed perspective conflating #EventSourcing with #EventStreaming.

    I know those terms sound similar. I know many people tell you that you can use Kafka as an event store, but...

    Event Sourcing is about making decisions, capturing their outcomes (so events) and using them to make further decisions (so events are the state).

    Event Streaming is about moving information from one place to another and integrating multiple components.

    Event stores are databases. They may have similar capabilities as Event Streaming solutions, but the focus is different:
    - event stores on consistency, durability and quality of data,
    - event streaming solutions (like #Kafka) are focused on delivery, throughput and integration.

    So, to give a bold comparison, saying that Kafka is an event store is almost like saying that #RabbitMQ is a database.

    I really like Kafka; I've been using it successfully, along with the Event Sourcing tool. That's why I believe it's important to know the difference and how to compose those tooling instead of mixing them and getting a hangover.

    Check more in my article 👇

    event-driven.io/en/event_strea