The Startup School logo is really cool - a bunch of Y Combinator 'Y's forming a tree. It fits what they seem to be going for with by calling the MOOC 'Startup School' and symbolizes the programming definition of Y Combinator. Whoever came up with that design does good work. :)
Avoiding large data migrations is one of the reasons to consider if using Command Query Responsibility Segregation (CQRS) and Event Sourcing (ES) is right for the application domain. It seems in this example the domain events haven't changed (i.e. subscription created, subscription canceled) but the logic enforcing subscriptions has (i.e. only one subscription then allowing multiple). If the events were stored in an append only journal then the subscription business logic just needs to change and no data needs to be migrated. Additionally, since the catalyst for this change seemed to be query side performance, the query service can be optimized for reading the records separate from the command service that writes to the event journal.
Event sourcing isn't without it's difficulties but if the domain is pretty well understood then it can be a very powerful pattern.
Stripe has an awesome product and seemingly an equally great engineering culture. I wonder if they have debated using CQRS/ES.
We're currently in the midst of implementing the independent application so we have not definitely solved our projection issues yet.
The main issue we have been running into is a performance bottle neck after restarting the application. Currently, when the application restarts (i.e. after a deployment) the projections may not update until several minutes. Our hypothesis is that if we can run projections independent of the command side of the application they can run indefinitely (i.e. as Spark jobs) since in theory a projection should not be updated. If we need to make changes to a projection then we will deploy another version to run side-by-side with the existing projection until the consumers migrate to the new version.
I work for a finance startup that uses Akka Persistence to implement an event sourced architecture. It has worked pretty well for us, much better than the original CRUD system. Akka can support a variety of different databases via journal plugins which has allowed us to maintain using a SQL database instead of being forced to adopt an unproven database.
The one area we've struggled with in the architecture is the query/projection side. Recently we have decided to completely separate the projection logic into a different application that is deployed independently to mitigate some of the issues we have been having.
While that may be true for some/most startups in Chicago, the startup I work for, M1 Finance, is definitely looking for people passionate about building a great product and company: https://www.m1finance.com/.
While I agree with Thiel on a lot of areas, I think he underestimates the power individuals to be more ambitious despite the norms of the local population.
Buying "nominally the same securities" is exactly the reason why tax-loss harvesting is borderline illegal. It goes directly against the IRS warning on "substantially identical" securities.
Hi @sama, you've been outspoken about the potential long term side effects of prolonged 0% interest rates. What do you think will be the worst side effect? Do you have any general advice for individuals to avoid the bad effects?
We have been using it at the finance company I work for to maintain customer's ledgers.