Business logic as code
Activities are SQL queries that represent a single customer action.
A series of these activities around one customer create an Activity Stream
They make a semantic layer that is simple to understand and use.
A customer is the entity that is doing the actions or the actions are being done on. Customer can be a person, scooter, car, company, etc..
Use only really really simple SQL
The Activity Schema was designed assuming that data is messy: foreign keys don't exist, duplication in the source, multiple identifiers, etc...
Use the same language that people are using in your business
Activities should have data that is self- sufficient.
Raw data goes into the Activity Stream and then that is used to generate any table. Everything you need is built on top of this one table making data more reliable and trusted.
Don't model everything, or don't have just a couple of activities. This makes sense later when you learn how to query the Activity Stream