RE: Let's Talk About Fees & Functionality Coming in the @tippy Text-to-Tip Service!
Wow. Now THIS is thoughts and feedback. Thank you for taking the time to write what is on your mind.
I'd love for my code to make it into the site and be officially implemented so I can gloat to my non-existant friends in real life that I created a service used by a multi-million dollar network. However I'd not really even set that as my goal until you mentioned it.. I'll perhaps have to ask the Steemit INC crew what needs done on my end to get tippy ready to rock and roll on the GUI.
I'd briefly played with the idea of a subscription style service rolled into @tippy and the way you describe x amount of tips free would be interesting. Perhaps have a $1SBD, $5SBD, $20SBD, etc etc optional monthly subscription that would allow chargless tipping and perhaps even access to advanced functionality.
I really appreciate you brainstorming with me. Perhaps a constant fee and subscription offering is the way to go.
Cheers man.
I would launch with either: absolute contant fee, or constant percentage. The advantage of the later is that someone who want s to tip a really low amount can do that without paying up to 100%+ on commission. Since we have many many mini mini mini minnows int he community making a couple of cents on their post, I would suggest to go with a fixed percentage at start. Be aware your service may get a lot of hits when introducing such pricing strategy, bot may be created that tip 1.000s of tips within seconds, maybe sending 1000 account each 0.001 Steem. So have a plan ready how to mitigate this when it happens. You do not want to have an real outage on your service. So when your service is not able to handle many tx per second, you may want to introduce with a tx fee constant in absolute value, this will reduce the amount of tips generated. Oh, from engineering point of fee, think how you can throttle the tip requests, with meaningful feedback to the tippers when their tips are not possible to be accepted.
I'm thinking some sort of queue system that serves multiple tippy accounts in round robin should be enough to handle high service loads.. However I'd not even given thought to users making bots to mess with it.. I'll have to do some research and testing once I get my load handling / 20 second limiter work around functioning.
From software architecture point of view I cannot really contribute, I know a bit from working with software architects as a pre sales guy and product manager, but am far from a specialist :) DB is important though, lot of developers decide for easy and go with non redundant. 20 tx/sec seems very low performance. You will see very busy times and very not busy times. I'm pretty sure, but only live tests will show you real figures. Maybe launch the service without announcing it to the community but with some early adopters you recruit directly? Limit the number of users to use the service, just to see how in that trial period the tippers are behaving? But then again, if you state alpha testing and you give some guarantee the tips never gets lost, than it should also be fine to roll out to the complete community. When you ask no fee from the start, you take a issue away, or at least partially...when things go wrong, nobody could claim and point fingers at you saying "you earned even money from us!". All the sht happening with the Poloniex exchange last week(s) I so furious about, since they cause market drops but earn at least 300k US$ worth of tx fees, and still they do not get their sht together with constant outages of their service, and leaving their customers with losses on their portfolios. Anyway, not completely comparable with a tipping service, but still, where money is involved people start to get extra emotional.
One great thing about running a service on a blockchain is it's nearly impossible to lose deposits as it's all recorded in public.
I've been pretty meticulous about how user data is stored, accessed, written and used. I think what I'll end up doing is ditching the variable fees and going to a flat rate.
As for closed beta testing I could likely implement some sort of whitelist function that would allow only those who've been approved to access the service.
When dealing with deposits, balances, transfers and fees there is no margin for error and the system has got to be potato-proof as well as intuitive, secure and have redundancy / backups. I'm probably 50% done the code I reckon.. It will likely be another week of coding and a week of testing before I'm entirely comfortable unleashing this.
That was why I asked :)
Great!
WOW that is fast work! But my reference are larger engineering departement with all sort of middle managed and lots of processes and extensive testing blah blah blah, but I know things could go much faster when we would not have those processes, documentation etc etc in place...but yeh, my customers demanded such organisation.
I'm an insomniac.. So my natural sleep cycle is roughly 48 hours awake and 12-16 hours down time. Believe it or not I do my best work and find the most ambition in the wee hours of the morning when any normal human being would be resting for work..
Problem with large teams is that you have dependencies and bottlenecks within your group most of the time and that kills output as well as creates situations where you may introduce flaws or bugs in the system when adding people's code..
Atleast with the 1 man army style of development I've got no one to blame but myself if bugs arise and the entire project is all but mapped out, just a matter of getting it to function as intended, tested and launched!
You are absolutely right! I hope I was a bit of help to you. I always love it when people come of with cool services and are able to implemented them. I can only think of them, create the concept, market and sell it. Unfortunately I cannot code, but maybe fortunately as well, since everybody has their talents and mine is not necessarily coding, although I like to work with software people :) Wil be waiting for the service! :) Happy coding in the mean time :)
Anyone can code! I often explain to people that coding is simply a logic puzzle with a pre-determined set of functions or magic words you can use to make the system do what you want.
I truly appreciate you taking the time out of your day to brainstorm, explain and help shape the service I am building for our network.
While I've been coding in various shapes and forms for over a decade I only in the past few years seriously started making an attempt at becoming fluent with my programming. While I've come a long way I still have a lifetime of learning to do and nearly every day or two I have a breakthrough in the way I design, code and integrate ideas into my projects.
Have a good one sir!